ios - 如何获取 backBarButtonItem 的宽度?

标签 ios objective-c uikit

我尝试获取 backBarButtonItem 宽度:

UIBarButtonItem *leftBtn = self.navigationItem.backBarButtonItem;
UIView *view = [leftBtn valueForKey:@"view"];
CGFloat width;
if(view){
    width=view.frame.size.width;
}
NSLog(@"width %f", width);

但在控制台中:宽度 0.000000

知道我可能做错了什么吗?使用 self.navigationItem.rightBarButtonItem 就可以了。

最佳答案

UIButton *addButton = [UIButton buttonWithType:UIButtonTypeCustom];
    CALayer *btnLayer = [addButton layer];
        [btnLayer setMasksToBounds:YES];
        [btnLayer setCornerRadius:1.0f];
    [addButton setFrame:CGRectMake(0, 0, 45, 30)];
    [addButton setBackgroundColor:[UIColor orangeColor]];
    [addButton setTitle:@"Title" forState:UIControlStateNormal];
    addButton.titleLabel.font = [UIFont systemFontOfSize:14.0];
    [addButton addTarget:self action:@selector(Onclickevent:) forControlEvents:UIControlEventTouchUpInside];
    UIBarButtonItem *barButtonItem = [[UIBarButtonItem alloc] initWithCustomView:addButton];
    [self.navigationItem setRightBarButtonItem:barButtonItem];

关于ios - 如何获取 backBarButtonItem 的宽度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27682263/

相关文章:

ios - 在 UIKit 中为图像添加阴影

ios - 谁负责在自定义 UIViewController 容器中调用 viewWillLayoutSubviews()/viewDidLayoutSubviews()?

ios - 正在调用我的委托(delegate)函数,但我的 UI 仍然没有相应更新

ios - 在使用 FIRDatabase 之前必须调用 FIRApp.configure()。错误,即使我已经调用了它

ios - 无法删除 CAShapeLayer

ios - 恢复并保留从 UINavigationController 推送的 UIViewController,没有 Storyboard

ios - 基于 ScrollView Position 的 UIImageView Fading

ios - 如何处理 NSData contentsOfURL EXC_BREAKPOINT 错误

ios - NSComparisonResult 行为异常

ios - 如何为名称验证创建正则表达式