繁体   English   中英

iOS 5中UINavigationBar中的截断标题标签

[英]Cut-off title label in UINavigationBar in iOS 5

使用iOS 5 SDK我正在编写一个在其UINavigationBar实例中使用自定义脚本样式字体的应用程序。 这种字体的问题在于,由于它是脚本样式,因此其字形超出了边界。 你可以在这里看到问题:

设备上的示例图像

有关更清晰的示例,您可以在此处查看我的photoshop文档:

Photoshop的例子

知道如何解决这个问题吗? 我的第一直觉是在UINavigationBar中设置UILabel的clipsToBounds属性,但显然没有苹果批准的方法直接访问该对象。 当我在测试版中使用iOS 5时,这已经困扰了我一段时间,所以也许你现在可以帮助NDA解除了。

谢谢!

您可以使用UINavigationItemtitleView设置带有自定义字体的UILabel ,然后覆盖setTitle:来更新自定义标签。 如有必要,您可以在标签上调用sizeToFit ,或者在使用sizeWithFont:或任何其他NSString大小调整方法后手动更新其框架。

我有完全相同的问题,似乎无法找到关于该主题的任何最新解决方案。

这是我发现的一篇文章,但对该问题有一个很好的解释: https//web.archive.org/web/20161228102731/http//tinymission.com/post/subclassing-uibutton

本文作者说:

你看,Apple(或设计UIButton类的人)决定根据报告的字体宽度自动计算按钮标签的宽度。 ...问题主要出现在斜体和草书字体上。 ...它们嵌套的方式是字体设计者实际上在其计算边界之外有意地绘制字母。 这允许触摸两个草书字母和其他字母样式更接近,这样像'f'这样的字母看起来不会远离字母't'。

希望这可以帮助任何未来的人偶然发现这个问题!

你可以访问UILabel的clipToBounds或adjustsFontSizeToFitWidth属性吗?

或者,您可以选择在UILabel视图中使标签为fin的字体大小。 有关如何在此处调整字体大小到给定矩形的说明:

如何调整标签的字体大小以适应矩形?

如果您使用的是导航控制器,则可以设置正在显示的某个UIViewController的titleView。 此标题视图可以是标题为.png资源的UIImageView。

例如:

在你的UIViewController里面

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
            self.navigationController.navigationItem.titleView = [[UIImageView alloc] initWithImage:@"yourheader.png"];
    }

    return self;
}

您可以根据图像的大小进行一些调整以使其适合。

希望这可以提供帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM