自定义 UIButton 圆角
Posted
技术标签:
【中文标题】自定义 UIButton 圆角【英文标题】:Custom UIButton rounded corners 【发布时间】:2011-11-02 06:15:50 【问题描述】:我正在自定义 UINavigationBar 并且必须为导航按钮设置自定义背景图像。这样做是这样的:
for (UIView *view in self.navigationController.navigationBar.subviews)
if ([[[view class] description] isEqualToString:@"UINavigationButton"])
UINavigationButton *button = (UINavigationButton *)view;
[button setBackgroundImage:[UIImage imageNamed:@"bar_button.png"] forState:UIControlStateNormal];
[button setBackgroundImage:[UIImage imageNamed:@"bar_button_black.png"] forState:UIControlStateSelected];
[button setBackgroundImage:[UIImage imageNamed:@"bar_button_black.png"] forState:UIControlStateHighlighted];
这不会被苹果拒绝吗? 如何使 UIButton/UIView 角变圆?
【问题讨论】:
【参考方案1】:UIView
对象有一个名为layer
(CALayer) 的属性,layer
有一个cornerRadius
属性。
【讨论】:
【参考方案2】:使用您的自定义图像将您的自定义按钮创建为普通 UIButton。然后使用您的新 UIButton 创建 UIBarButtonItems 作为自定义视图(您可以在 UIBarButtonItem 类参考中查看如何执行此操作)。
然后,将您的视图控制器的 navigationItem 设置为让您的新 UIBarButtonItems 作为 leftButtonItem、rightButtonItem 等等。
【讨论】:
好的。看起来没有其他选择。谢谢。【参考方案3】:不是这样,而是这样做。获取一个 UIButton,然后将其添加到导航按钮。
【讨论】:
以上是关于自定义 UIButton 圆角的主要内容,如果未能解决你的问题,请参考以下文章
iPhone iOS自定义UIButton与CAGradientLayer,如何让它指示触摸?
Swift 3 - 自定义 UIButton 半径删除约束?