【问题标题】:How can I change size of UINavigationItem's leftBarButtonItem如何更改 UINavigationItem 的 leftBarButtonItem 的大小
【发布时间】:2015-04-30 11:57:38
【问题描述】:

我想更改 leftBarButtonItem 的大小。
如果我使用自定义 barButtonItem,那么我不会在该按钮上获得上一个的标志。
在这里,我通过在didFinishLaunchingWithOptions 方法中设置以下代码成功地制作了小文本。

[[UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class], nil] setTitleTextAttributes:
     @{NSFontAttributeName:[UIFont systemFontOfSize:12.0]} forState:UIControlStateNormal];

但以前的符号没有改变。

有没有办法(除了设置图像)使那个标志变小? 我也尝试过更改 leftBarButtonItem 的比例,但没有可用的方法。

【问题讨论】:

  • 要不要设置自定义NavigationBar??如果是,推荐人stackoverflow.com/questions/29664778/…
  • @ViralSavaj,我可以设置自定义,但我可以获取以前的登录自定义按钮吗?
  • 如果您想显示 (
  • 最好创建一个自定义按钮
  • 否,更改默认上一个按钮的图像大小,在导航控制器中是不可能的,

标签: ios objective-c iphone uinavigationbar uinavigationitem


【解决方案1】:
UIView *viewLeftSide = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, 100.0, 30.0)];
viewLeftSide.userInteractionEnabled = YES;

UIButton *btn1 = [[UIButton alloc] initWithFrame:CGRectMake(0.0, 5.0, 20.0, 20.0)];
[btn1 setImage:[UIImage imageNamed:@"img1"] forState:UIControlStateNormal];
[btn1 addTarget:self action:@selector(sel1) forControlEvents:UIControlEventTouchUpInside];
[viewLeftSide addSubview:btn1];

UIButton *btn = [[UIButton alloc] initWithFrame:CGRectMake(50.0, 5.0, 20.0, 20.0)];
[btn2 setImage:[UIImage imageNamed:@"img2"] forState:UIControlStateNormal];
[btn2 addTarget:self action:@selector(sel2) forControlEvents:UIControlEventTouchUpInside];
[viewLeftSide addSubview:btn2];

UIBarButtonItem *leftBarItem = [[UIBarButtonItem alloc] initWithCustomView:viewLeftSide];

self.tabBarController.navigationItem.leftBarButtonItem = leftBarItem;

【讨论】:

    【解决方案2】:
     UIBarButtonItem* backButton = [[UIBarButtonItem alloc]initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:self action:@selector(barButtonBackPressed:)];
    
    
    UIImage *backImage = [UIImage imageNamed:@"backarrow11.png"];
    UIButton *back = [UIButton buttonWithType:UIButtonTypeCustom];
    back.bounds = CGRectMake( 0, 0, 17, 17);
    [back setImage:backImage forState:UIControlStateNormal];
    [back addTarget:self action:@selector(barButtonBackPressed:)forControlEvents: UIControlEventTouchUpInside];
    
    UIBarButtonItem *barBtn2 = [[UIBarButtonItem alloc] initWithCustomView:back];
    self.navigationItem.leftBarButtonItems=[NSArray arrayWithObjects:barBtn2,backButton, nil];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多