我们如何使用自动布局来舍入 UIImageView
Posted
技术标签:
【中文标题】我们如何使用自动布局来舍入 UIImageView【英文标题】:How can we round the UIImageView using autolayouts 【发布时间】:2015-09-16 07:27:21 【问题描述】:在我的项目中,我在 tableview 单元格上添加了图像,为此我尝试了一些代码,但不起作用,我在这里做错了什么?
这里我的主要要求是我想对那个图像进行四舍五入(就像圆形格式一样)。
我的代码:
Personimage = [[UIImageView alloc]init];
Personimage.image = [UIImage imageNamed:@"ram.jpeg"];
Personimage.translatesAutoresizingMaskIntoConstraints = NO;
[Cell.contentView addSubview:Personimage];
//Applying autolayouts
NSDictionary * viewsDic = NSDictionaryOfVariableBindings(Personimage)
[Cell.contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-10-[Personimage(80)]"
options:0
metrics:nil
views:viewsDic]];
[Cell.contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-10-[Personimage(80)]"
options:0
metrics:nil
views:viewsDic]];
-(Void)ViewDidAppear
Personimage.layer.cornerRadius = Personimage.frame.size.width / 2;
Personimage.layer.borderWidth = 3.0f;
Personimage.layer.borderColor = [UIColor whiteColor].CGColor;
Personimage.clipsToBounds = YES;
应用自动布局后,我在 viewDidAppear 方法中保留了图像“圆形”属性,但它仍然不起作用我在这里做错了什么?请帮帮我
【问题讨论】:
什么不起作用?运行这段代码会发生什么? Storyboard and autolayout: how make a circular image的可能重复 设置 personimage.clipdToBounds = YES ;并在将图像分配给它之前设置 imageview 框架 ... 你必须在你的类中导入QuartzCore.h
,cornerRadius
属性才能工作
你要swift代码还是obj-c代码?
【参考方案1】:
您可以使用此代码对UIImageView
进行四舍五入
imgView.layer.cornerRadius = imgView.frame.size.width / 2;
imgView.clipsToBounds = YES;
【讨论】:
不,这不起作用,我已经在上面的代码中尝试过了 它正在工作。你应该把它放在正确的地方,例如viewDidAppear
。 ;) 您应该使用 UIImage
的一半宽度,而不是 UIImageView
,因为在 AutoLayout 可以布局之前它将是 CGSizeZero
。你仍然可以像这样使用它,但正如我所说,在 AutoLayout 完成它的工作之后,将代码放在正确的位置。
这对我来说很好..,感谢 Vidhi 分享答案【参考方案2】:
属性 clipsToBounds 是一个Bool
值,将其值从 YES 更改为 true 即可。
享受 Swift 的乐趣!
【讨论】:
以上是关于我们如何使用自动布局来舍入 UIImageView的主要内容,如果未能解决你的问题,请参考以下文章
调整大小后使用自动布局以编程方式居中 UIImageVIew