【发布时间】:2014-01-07 12:01:58
【问题描述】:
我想为leftBarButtonItem 添加一个后退箭头,使它在视觉上看起来就像是一个常规的后退按钮,尽管它的功能略有不同。
有没有办法做到这一点?
【问题讨论】:
-
将
Custom UIButton用于带有背景图像的内容。
标签: ios objective-c ipad uinavigationbar uibarbuttonitem
我想为leftBarButtonItem 添加一个后退箭头,使它在视觉上看起来就像是一个常规的后退按钮,尽管它的功能略有不同。
有没有办法做到这一点?
【问题讨论】:
Custom UIButton 用于带有背景图像的内容。
标签: ios objective-c ipad uinavigationbar uibarbuttonitem
如果您使用导航控制器,您可以使用自定义按钮并隐藏后退按钮。
要隐藏后退按钮,请使用:
self.navigationItem.hidesBackButton = YES;
对于自定义按钮:
UIButton * customButton = [UIButton buttonWithType:UIButtonTypeCustom];
[customButton setBackgroundColor:[UIColor colorWithRed:197.0/255.0 green:190.0/255.0 blue:157.0/255.0 alpha:1.0]];
[customButton setTitle:@"Do Something" forState:UIControlStateNormal];
customButton.titleLabel.font = [UIFont fontWithName:@"Helvetica-Bold" size:11.0f];
[customButton.layer setCornerRadius:3.0f];
[customButton.layer setMasksToBounds:YES];
[customButton.layer setBorderWidth:1.0f];
[customButton.layer setBorderColor: [[UIColor grayColor] CGColor]];
customButton.frame=CGRectMake(0.0, 100.0, 50.0, 25.0);
[customButton addTarget:self action:@selector(customMethod:) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem * customItem = [[UIBarButtonItem alloc] initWithCustomView:customButton];
customItem.tintColor=[UIColor blackColor];
self.navigationItem.leftBarButtonItem = customItem;
这对你有用。 快乐编码
【讨论】:
如果您使用 UINavigationController 然后推送新的视图控制器,它将自动显示返回按钮。 如果你没有使用 UINavigationController 而不是
使用自定义 UIButton 与背景图像
UIButton *backButton = [UIButton buttonWithType:UIButtonTypeCustom];
backButton.frame = CGRectMake(0, 0, 48, 37);
[backButton addTarget:self action:@selector(backButtonTapped) forControlEvents:UIControlEventTouchUpInside];
backButton.showsTouchWhenHighlighted = YES;
UIImage *backButtonImage = [UIImage imageNamed:@"back-button.png"];
[backButton setImage:backButtonImage forState:UIControlStateNormal];
backButton.imageEdgeInsets = UIEdgeInsetsMake(10, 10, 10, 10);
UIBarButtonItem *backBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:backButton];
self.navigationItem.leftBarButtonItem = backBarButtonItem;
您可以根据需要更改框架和 imageEdgeInsets 的值。
请参阅this SO 答案。
【讨论】: