大家好。 我正在创建一个iOS应用程序。我在UITableView单元格上有一个ImageView。问题是每当我通过将它的高度或宽度除以2来创建一个椭圆形时它是圆形的。虽然当我删除autoresizing其工作正常。请有人帮忙吗?
答案 0 :(得分:1)
我在UITableViewCell中发现,当您在单元格中显示圆形图像时,会出现与大小类相关的奇怪影响。如果您对iPad上的图像使用不同的尺寸限制,则情况尤其如此。要解决此问题,我将以下内容添加到我的单元类中。 self.myImageView
是我希望成为圆形的细胞UIImageView。
如果在布局过程中发生变化,这也可以确保您在图像框中选择最新的更改。
- (void) layoutSubviews
{
[super layoutSubviews];
//
// Make the image round using the latest frame size.
//
CALayer *l=[self.myImageView layer];
[l setMasksToBounds:YES];
[l setCornerRadius:self.myImageView.frame.size.width/2];
// No border just now
[l setBorderWidth:0.0];
[l setBorderColor:[[UIColor blackColor] CGColor]];
}
代码假定图像是正方形,需要它才能工作。
答案 1 :(得分:0)
是的,你应该让你的UIImageview宽度和高度等于你的 UITableviewcell 的高度,而不是把它除以2 ......
答案 2 :(得分:0)
添加此通用方法:
func addRoundedCorner(viewToRound:UImageView, radius:CGFloat) {
var layer:CALayer = viewToRound.layer;
layer.cornerRadius=radius
layer.masksToBounds = true
} //F.E.
像这样传递你的imageview:
self.addRoundedCorner(YourUImageView, radius:CGFloat(YourUImageView.frame.size.width/2.0))
注意:使用正确的自动调整大小来应用它,否则它将无法正常工作 感谢