【发布时间】:2016-07-04 23:05:39
【问题描述】:
我有一个 UIButton,我想访问其背景图像的 UIImageView,以便我可以使图像成为圆形。我知道我可以影响图像本身,但我更愿意更优雅地做到这一点。我也知道我可以使用button.currentBackgroundImage 属性在后台获取 UIImage,但我想要视图本身。获得视图后,我打算使用此代码:
buttonImageView.layer.cornerRadius = buttonImageView.frame.size.width / 2;
buttonImageView.clipsToBounds = YES;
如何访问 buttonImageView?
编辑: 由于@vhristoskov 的建议,我尝试使用以下代码裁剪按钮本身:
self.button.layer.cornerRadius = self.button.frame.size.width/2;
self.button.clipsToBounds = YES;
它做成了这个形状:
调试后发现frame.size.width是46,本来应该是100。所以我改用这段代码:
self.button.layer.cornerRadius = self.button.currentBackgroundImage.size.width/2;
self.button.clipsToBounds = YES;
产生了这个形状:
这一次,cornerRadius 被设置为 65。所以实际上我的问题似乎是我目前没有正确的宽度。我应该访问哪个属性以获得正确的数字?
【问题讨论】:
-
是否有理由不将相同的代码直接应用于您的 UIButton?
-
@vhristoskov 嗯,我刚试过,结果很奇怪,图像的形状很奇怪。如果你愿意,我可以添加我的问题发生的屏幕截图。
-
这会很棒。您还可以在 IB 中添加约束图像(或用于设置按钮框架的代码)。
-
@vhristoskov 如果您有任何想法,我添加了图片
-
请在下面查看我的回答,希望这对您有所帮助并结束这个谜团:D
标签: ios objective-c uiimageview uibutton