标签: uifont

在Xcode 4.1中添加自定义字体

我想在y应用程序中使用自定义字体.

我在info.Plist文件中声明了"应用程序提供的字体"

并将label.font设置为带/不带.TTF扩展名的字体

将TTF文件拖入项目并将文件复制到项目中

为标签创造了一个出口,但仍然没有任何作用.

如果有人知道那边发生了什么,我想得到一些帮助.

最近我注意到这个问题已知为@ 4.1(xcode版本).

TNX :)

iphone objective-c uilabel uifont xcode4

16
推荐指数
2
解决办法
2万
查看次数

iOS中的字母间距

我有以下代码:

[[cancelButton titleLabel] setFont:[UIFont fontWithName:@"ProximaNova-Regular" size:15]];
Run Code Online (Sandbox Code Playgroud)

我如何设置字母间距?

objective-c uilabel uifont ios

16
推荐指数
1
解决办法
2万
查看次数

UILabel的字体颜色没有变化

我试图在UILabel上显示带有粗体黑色字体和大小50的数字.

经过一些失败的尝试后,我才意识到无论我将字体设置为什么颜色,它总是设置为lightGray.除了下面我还需要做些什么吗?

[DisplayLabel setFont:[UIFont fontWithName:[NSString stringWithUTF8String:"HelveticaNeue-Bold"] size:50]];
DisplayLabel.textColor = [UIColor brownColor];
DisplayLabel.textAlignment = NSTextAlignmentCenter;
Run Code Online (Sandbox Code Playgroud)

我正在使用故事板将标签添加到视图中.

objective-c uilabel uifont ios uistoryboard

16
推荐指数
2
解决办法
7504
查看次数

如何将CGFontRef转换成UIFont?

我想使用自定义字体UILabel.自定义字体由文件加载:

NSString *fontPath = ... ; // a TTF file in iPhone Documents folder
CGDataProviderRef fontDataProvider = CGDataProviderCreateWithFilename([fontPath UTF8String]);
CGFontRef customFont = CGFontCreateWithDataProvider(fontDataProvider);
CGDataProviderRelease(fontDataProvider); 
Run Code Online (Sandbox Code Playgroud)

我怎样才能转换CGFontRefUIFont以中使用[UILabel setFont:]

iphone uilabel uifont ios

15
推荐指数
3
解决办法
7888
查看次数

动态模拟iOS动态类型系统文本大小(UIContentSizeCategory)

我想用不同的系统文本大小选项轻松测试我的应用程序,包括可访问性大小.这些可以在"设置"应用中设置(显示和亮度=>文字大小或常规=>辅助功能=>较大文本).

我目前可以找到的唯一方法是进入设置并使用UI更改值(编辑:下面描述的部分解决方案).这很慢而且很麻烦.我怀疑有一种方法可以使用私有API动态地改变它,但我无法弄清楚如何.由于我的目标是仅将其用于调试,因此私有API使用和调配很好(此代码不会用于生产).

为了尝试找到一个私有API来实现这一点,我查看了一些逆向工程资源.我是新的反汇编程序,符号表,类转储,以及查找我可以使用的私有API,但这是我到目前为止所尝试的:

  • 我成功地调高了-[UIApplication preferredContentSizeCategory](其他帖子说这在过去有效),但这不会影响从中返回的结果+[UIFont preferredFontForTextStyle:].

  • 使用反汇编程序IDA,我发现它+[UIFont preferredFontForTextStyle:]位于私有框架中UIFoundation.framework.(-[UIApplication preferredContentSizeCategory]在,UIKit.framework但反汇编并没有看起来有用).

  • 正如我开始写这个问题(它总是这样发生),我发现了一个部分解决方案.可以在方案中设置启动参数以在启动时设置值.这很有用,但不是我追求的.

  • 通过上面的回答,我发现用户偏好的值显然存储在" com.apple.UIKit.plist位于模拟器data/Library/Preferences目录中的文件"中.我们所追求的值可以从命令行实用程序设置plutil.这也是一种改进!但是我想在运行时动态地改变它.

更多关于IDA的结果:

我真的不知道如何阅读反汇编,但+[UIFont preferredFontForTextStyle:]似乎指向一个符号___UIFontForTextStyle,它似乎指向一些有趣的符号,称为_getUIContentSizeCategoryUnspecified_getUIContentSizeCategoryPreferenceClass

<code>nm</code></a>上<code>UIFoundation.framework</code>.它们用小写字母"符号在小对象的未初始化数据部分中." .我不知道这意味着什么(我收集到的只是他们不是一个阶级或方法).

在网上搜索_getUIContentSizeCategory...符号不会产生任何结果,但附近还有另一个符号_getUIApplicationClass.我搜索了那个,因为它听起来更一般,并在一些WebKit源代码中发现了类似的东西.可能一无所获,但也许这是Apple的内部约定.无论如何,这个例子并没有真正帮助我解决问题.

无论如何感谢阅读到目前为止.如果你还在这里,我的问题是:

我希望能够动态模拟动态类型大小首选项的值.这些反汇编符号可能有所帮助,但也许我走错了路.感觉解决方案很接近,但我不能将所有部分放在一起.

将此值设置为启动参数很好,但不能完全解决我的问题.同样,修改模拟器的值plist也很适合自动化,但不能解决我的问题.

有没有办法在运行时动态更改此值?

objective-c disassembly iphone-privateapi uifont ios

15
推荐指数
1
解决办法
818
查看次数

为什么UIFont和CGFont/CTFont完全分开?

我试图用下载的字体绘制一些文本.我查看了API文档并搜索了Web.我找到了一个解决方案,但问题是它只适用于CoreGraphics级别框架.所以我搜索了一种转换CGFont方式UIFont,但没有办法做到这一点.

我意识到UIFontCGFont/CTFont完全分开,即使它们是从相同的字体文件创建的.CGFont并且CTFont可以相互转换,但是UIFont,唯一的方法是使用名称和大小等属性进行重新创建.适用的代码也是分开的.

例如,CATextLayer只接受CGFont/ CTFont- 否UIFont.但是所有UIKit控件都只接受UIFont.

为什么存在这种分离?还是我错了?(在UIKit课程中使用下载字体的任何方式?)

uikit uifont ios

14
推荐指数
1
解决办法
3699
查看次数

iOS UIFont缓存?

我想弄清楚我是否应该缓存[UIFont fontWithName:@"myfont"size:24].我在很多地方重复使用这种字体.我想知道iOS是否已经为我缓存了这一点,因为字体缓存在操作系统级别非常常见.

有人可以对此发表评论吗?

谢谢.

uikit uifont ios

14
推荐指数
2
解决办法
2923
查看次数

iOS Foundation:系统字体大小

我想知道iOS app appView中的systemFontSize对于textLabel 是否总是相同的?这是取决于风格?

例如,当我 NSLog(@"%f",[UIFont systemFontSize]);得到14.0时.这总是一样的吗?

还有更多:如何在不更改font-family的情况下更改字体大小(假设我的plist中有自己的字体).

我试过了:

cell.textLabel.font = [UIFont fontWithName:@"Sansation-Light" size:12.0];
Run Code Online (Sandbox Code Playgroud)

但是UIFont总是想要我的fontname/family.我怎样才能避免这种情况,并且在我的所有屏幕上都有一种字体并且只改变尺寸?

objective-c uifont ios

13
推荐指数
1
解决办法
2万
查看次数

如何在Swift中更改字体样式

我试图弄清楚如何将字体的样式更改为"瘦".有谁知道如何做到这一点?

这是我最好的尝试,但它不起作用:

m.font = UIFont(name: "Apple SD Gothic Neo", style: "Thin", size: 8.0)
Run Code Online (Sandbox Code Playgroud)

uifont ios swift

13
推荐指数
2
解决办法
2万
查看次数

swift 2.2:懒惰属性中的可用初始值设定项

首先非常感谢您的帮助.我昨天刚刚升级了包含swift 2.2的Xcode.我遇到了一些问题但我通过遵循Natashatherobot的"swift 2.2中的新内容"主题来快速修复它们.但有一个问题我无法解决.这是关于UIFont的可用初始化程序,它是在swift 2.2中引入的.附件是一段简单的代码,它将在swift 2.2中报告错误.在我清理项目之前,它可能不会立即报告错误.

lazy var somelabel: UILabel = {

        let label = UILabel()
        let font = UIFont(name: "somefont", size: 10) ?? UIFont.systemFontOfSize(10) //this line gave me error
        label.font = font
        label.text = "Calculating..."

        return label
    }()
Run Code Online (Sandbox Code Playgroud)

这是错误的屏幕截图

在此输入图像描述

错误是:(名称:字符串,大小:CGFloat) - > UIFont'不能转换为'(名称:字符串,大小:CGFloat) - > UIFont?'

我可以通过两种方式解决它:

方法1:不要把这一行 let font = UIFont(name: "somefont", size: 10) ?? UIFont.systemFontOfSize(10) 放在'lazy instantiation'闭包中.(把它放在计算属性报告中没有错误)

方法2:而不是使用:

 UIFont(name: "somefont", size: 10)
Run Code Online (Sandbox Code Playgroud)

使用下面的代替(但我不认为这应该是正确的方法,因为它使初始化器更"objc"样式):

UIFont.init(name: "somefont", size: 10)
Run Code Online (Sandbox Code Playgroud)

但我仍然不明白为什么它会在lazy属性关闭中报告错误.如果有人能给我一些解释,我将非常感激.

initialization uifont lazy-initialization swift swift2.2

13
推荐指数
1
解决办法
800
查看次数