Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios UITableViewCell中的UIImage圆形_Ios_Objective C_Uitableview - Fatal编程技术网

Ios UITableViewCell中的UIImage圆形

Ios UITableViewCell中的UIImage圆形,ios,objective-c,uitableview,Ios,Objective C,Uitableview,因此,我遵循正常的方法,把一个图像画成一个圆: image.layer.cornerRadius = image.frame.size.width/2.0f; image.layer.borderColor = [UIColor blackColor].CGColor; image.layer.borderWidth = 2; image.clipsToBounds = YES ; 然而,当我在单元格中使用它时,它第一次显示在半完美圆中,但当我滚动显示新单元格时,

因此,我遵循正常的方法,把一个图像画成一个圆:

   image.layer.cornerRadius = image.frame.size.width/2.0f;
    image.layer.borderColor = [UIColor blackColor].CGColor;
    image.layer.borderWidth = 2;
    image.clipsToBounds = YES ;
然而,当我在单元格中使用它时,它第一次显示在半完美圆中,但当我滚动显示新单元格时,所有单元格都将是完美圆形状。
所以我的问题是:为什么第一个可见的细胞以类似圆环的形状出现? 这是它第一次的样子,但是如果我刷新或重新加载页面,一切都很好

尝试使用这种方式

就像在自定义单元格类中一样

class ProfilePicCell: UITableViewCell {

    @IBOutlet weak var image: UIImageView!

    override func awakeFromNib() {
        super.awakeFromNib()
        image.layer.cornerRadius =  image.frame.width / 2
        image.layer.masksToBounds = true
    }
}
- (void)awakeFromNib
{
 super.awakeFromNib()

 image.layer.cornerRadius =  image.frame.width / 2
}
目标C中,在自定义单元格类中添加此方法

class ProfilePicCell: UITableViewCell {

    @IBOutlet weak var image: UIImageView!

    override func awakeFromNib() {
        super.awakeFromNib()
        image.layer.cornerRadius =  image.frame.width / 2
        image.layer.masksToBounds = true
    }
}
- (void)awakeFromNib
{
 super.awakeFromNib()

 image.layer.cornerRadius =  image.frame.width / 2
}
试着用这种方法

就像在自定义单元格类中一样

class ProfilePicCell: UITableViewCell {

    @IBOutlet weak var image: UIImageView!

    override func awakeFromNib() {
        super.awakeFromNib()
        image.layer.cornerRadius =  image.frame.width / 2
        image.layer.masksToBounds = true
    }
}
- (void)awakeFromNib
{
 super.awakeFromNib()

 image.layer.cornerRadius =  image.frame.width / 2
}
目标C中,在自定义单元格类中添加此方法

class ProfilePicCell: UITableViewCell {

    @IBOutlet weak var image: UIImageView!

    override func awakeFromNib() {
        super.awakeFromNib()
        image.layer.cornerRadius =  image.frame.width / 2
        image.layer.masksToBounds = true
    }
}
- (void)awakeFromNib
{
 super.awakeFromNib()

 image.layer.cornerRadius =  image.frame.width / 2
}

覆盖单元格中的
layoutSubviews
,并在调用
super.layoutSubviews
后更新那里的
image.layer.cornerRadius
。然后,当单元的布局在单元可见后更新时,角半径将相应地更新

因此,在swift中,在您的牢房中,您将执行以下操作:

override func layoutSubviews() {
    super.layoutSubviews()

    // now the frames were recalculated, and we can update cornerRadius
    image.layer.cornerRadius = image.bounds.size.width / 2.0
}

覆盖单元格中的
layoutSubviews
,并在调用
super.layoutSubviews
后更新那里的
image.layer.cornerRadius
。然后,当单元的布局在单元可见后更新时,角半径将相应地更新

因此,在swift中,在您的牢房中,您将执行以下操作:

override func layoutSubviews() {
    super.layoutSubviews()

    // now the frames were recalculated, and we can update cornerRadius
    image.layer.cornerRadius = image.bounds.size.width / 2.0
}

行的高度是否大于或等于图像?检查imageview的尺寸。仔细检查应用的约束。对于该图像视图,它应为所需的正方形circle@JRB图像宽高比已经是1:1了,还有其他问题,你能显示问题截图吗?因为您的代码我认为Right是大于或等于图像的行的高度?请检查imageview的尺寸。仔细检查应用的约束。对于该图像视图,它应为所需的正方形circle@JRB图像宽高比已经是1:1了,还有其他问题,你能显示问题截图吗?因为我认为您的代码是正确的,所以我可以在自定义tableview单元格中使用此概念吗?我在UITableCellView中使用自己的图像进行布局的最佳位置是
UIViews
layoutSubview
。如果您在
awakeFromNib
或在
layoutSubviews
之前调用的其他方法中执行此操作,则您的图像可能还没有最终大小。使用故事板和约束时通常会出现这种情况,但这始终是一种很好的做法。考虑一下米兰NoSAA解决方案。我可以在自定义TabelVIEW单元格上使用这个概念吗?我在UITableCellView中使用自己的图像进行布局的最佳位置是
UIViews
layoutSubview
。如果您在
awakeFromNib
或在
layoutSubviews
之前调用的其他方法中执行此操作,则您的图像可能还没有最终大小。使用故事板和约束时通常会出现这种情况,但这始终是一种很好的做法。代之以“米兰诺斯”解决方案。