2011-11-02 90 views
1

我正在自定义UINavigationBar并且必须将自定义背景图像设置为导航按钮。这是这样完成的:自定义UIButton圆角

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的四角变圆?

回答

2

使用您的自定义图像创建您的自定义按钮作为正常的UIButtons。然后用你的新UIButton作为自定义视图创建UIBarButtonItems(你可以看到如何在UIBarButtonItem类的引用中做到这一点)。

然后,设置您的视图控制器的navigationItem使您的新UIBarButtonItems作为leftButtonItem,rightButtonItem等。

+0

好的。看起来没有其他选择。谢谢。 – Misha

0

而不是像这样做。取一个UIButton,然后将它添加到导航按钮。

3

A UIView对象有一个名为layer(CALayer)的属性,并且layer具有cornerRadius属性。