【问题标题】:adding icon between back button & title of navigation bar在后退按钮和导航栏标题之间​​添加图标
【发布时间】:2010-12-01 11:39:41
【问题描述】:

我想在我的导航栏标题旁边放一个图标。我不想将它实现为自定义titleView,因为那样我需要为我放在堆栈上的每个控制器创建一个自定义titleView(并且我有很深的嵌套)。我正在将当前作为 UIImageView 添加到导航栏。我的问题是准确计算这个图标的水平位置。这取决于后退按钮的宽度,每次都有另一个标题。我如何计算这个后退按钮框架?谷歌搜索似乎不会带来任何合理的结果。

提前致谢

【问题讨论】:

    标签: iphone size uinavigationbar uibarbuttonitem titleview


    【解决方案1】:

    您可以计算标签的大小,使用 您在其中的文本并试验按钮将添加的内容..

    CGSize s = [label sizeWithFont:_font];
    

    【讨论】:

    • 你的意思是取后退按钮标签的宽度。我想可能有更标准的方法......
    【解决方案2】:

    我遇到了同样的问题。我的解决方案是在一个灵活的空间之后将图标添加为 leftBarButtonItems 之一。这将其推向了标题。

    UIBarButtonItem *space = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil] autorelease];
    UIView *icon = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"titleIcon"]] autorelease];
    UIBarButtonItem *iconItem = [[[UIBarButtonItem alloc] initWithCustomView:icon] autorelease];
    NSArray *items = [NSArray arrayWithObjects: space, iconItem, nil];
    self.navigationItem.leftBarButtonItems = items;
    self.navigationItem.leftItemsSupplementBackButton = YES;
    

    这与创建自定义 titleView 不太一样,但是,有两种方式: (1) 标题文本尽可能保持居中,图标位于左侧,而不是将标题和图标居中; (2) 当你将新视图压入堆栈时,图标不会随标题向左滑动;相反,它会像其他条形按钮项目一样淡出。

    因此,根据您的要求,此解决方案可能适合您,也可能不适合您。但至少它避免了尝试匹配自定义标题视图中的标准标题文本属性。 (据我所知,没有自动的方法可以做到这一点。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-30
      • 1970-01-01
      相关资源
      最近更新 更多