• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - UIBarbuttonItem 在 ios 7 上没有标题

[复制链接]
菜鸟教程小白 发表于 2022-12-12 15:11:40 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我有一个应用程序,我正在迁移到 iOS 7。 但是,UIBarbuttonItem 没有标题,但工作正常。 这是我的代码:

UIBarButtonItem * uibbShare = [[[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed"sharewhite.png"] style:UIBarButtonItemStylePlain target:self actionselector(sharePressed] autorelease];
// uibbShare.width = 56.0;  // uncommenting this doesn't change anything
uibbShare.title = @"Share";

然后我将其中一些添加到工具栏中,并在它们之间添加一些灵活的空间项。

...
 [items addObject:flex2];
 [items addObject:uibbShare];
...

[self.toolbar setItems:items animated:NO];

在 iOS 7 上它们根本没有标题,在 iOS6 上一切正常。你不能再在 ios7 中创建这样的 barbuttons 了吗?

更新开发论坛上的同样问题:

UIBarButtonItem can't have both title and image?

What happened to the text under toolbar icons?

编辑7比6)

enter image description here

编辑 2 一张来自 Reveal 的图片,似乎文字不见了,frame/bounds 为 0.wtf )

enter image description here



Best Answer-推荐答案


最终为 UIBarButtonItems 创建了自定义 View 。这不是很好,但它会暂时起作用。我只是将旧的 UIBarButtonItems 传递给该函数,该函数返回一个新的。

注意:如果有标题,我只是将按钮的图像上移并在下面添加一个简单的标签,实际上并没有弄乱 titleEdgeInsets 和 centering 。另外,我将宽度设置为默认的 56。

-(UIBarButtonItem *)convertToButtonUIBarButtonItem *)original
{
    if ( SYSTEM_VERSION_LESS_THAN(@"7.0"))
        return  original;

    CGFloat textFieldHeight = 13.f;
    UIButton * button = [UIButton buttonWithType:UIButtonTypeCustom];
    button.frame = CGRectMake(0, 0, 56, self.toolbar.frame.size.height);
    button.showsTouchWhenHighlighted = YES;
    [button setImageriginal.image forState:UIControlStateNormal];
    [button addTargetriginal.target actionriginal.action forControlEvents:UIControlEventTouchUpInside];
    button.tag = original.tag;

    UIView * wr = [[[UIView alloc] initWithFrame:CGRectMake(0, 0, 56, self.toolbar.frame.size.height)] autorelease];
    [wr addSubview:button];
    wr.backgroundColor = [UIColor clearColor];

    if (original.title != nil)
    {
        button.imageEdgeInsets = UIEdgeInsetsMake(-7, 0, 0, 0);
        UILabel * l = [[[UILabel alloc] initWithFrame:CGRectMake(0, self.toolbar.frame.size.height - textFieldHeight, 56, textFieldHeight)] autorelease];
        l.font = [UIFont systemFontOfSize:11.f];
        l.backgroundColor = [UIColor clearColor];
        l.textColor = [UIColor lightGrayColor];
        l.textAlignment = UITextAlignmentCenter;
        l.text = original.title;
        [wr addSubview:l];
    }

    UIBarButtonItem * theNew = [[[UIBarButtonItem alloc] initWithCustomView:wr] autorelease];
    theNew.tag = original.tag;
    theNew.width = 56;
    return theNew;

}

关于ios - UIBarbuttonItem 在 ios 7 上没有标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19134598/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap