Ios 为什么我的UILabel不改变字体?
我在这里读到了关于XCode中自定义字体的不同答案,但我仍然无法让它工作 我所做的: 将其添加到Plist。 添加它以复制边界资源 如果我这样做:Ios 为什么我的UILabel不改变字体?,ios,xcode,fonts,Ios,Xcode,Fonts,我在这里读到了关于XCode中自定义字体的不同答案,但我仍然无法让它工作 我所做的: 将其添加到Plist。 添加它以复制边界资源 如果我这样做: for ( NSString *familyName in [UIFont familyNames] ) { NSLog(@"Family: %@", familyName); NSLog(@"Names = %@", [UIFont fontNamesForFamilyName:familyName]);
for ( NSString *familyName in [UIFont familyNames] )
{
NSLog(@"Family: %@", familyName);
NSLog(@"Names = %@", [UIFont fontNamesForFamilyName:familyName]);
}
它将打印它:
2013-03-26 17:04:52:214 Appname[21704:2311] Family: Patrick Hand
2013-03-26 17:04:52:217 Appname[21704:2311] Names = (
"PatrickHand-Regular"
)
我试着用这两种字体设置字体:
self.usernameLabel.font = [UIFont fontWithName:@"PatrickHand-Regular" size:30];
及
我最绝望的尝试是:
for ( NSString *familyName in [UIFont familyNames] )
{
NSLog(@"Family: %@", familyName);
NSLog(@"Names = %@", [UIFont fontNamesForFamilyName:familyName]);
[self.usernameLabel setFont:[[UIFont fontNamesForFamilyName:familyName] objectAtIndex:0]];
if ( [familyName isEqualToString:@"Patrick Hand" ])
{
NSLog(@"BREAK!");
break;
}
}
但它仍然没有改变
建议尝试什么?当您想使用
IBOutlet
实例变量更改用户界面中的某些内容时,需要确保在适当的时间调用代码
例如,假设您有一个如下所示的类:
@interface MDViewController : UIViewController
@property (nonatomic, strong) IBOutlet UILabel *usernameLabel;
@end
还有一个MDViewController.nib
文件,它保存视图控制器的UI,假设您希望将标签的内容设置为某个值
通常,像init
或initWithCoder:
这样的init
方法在对象的生命周期中调用得太早,无法与UI中的对象通信,因为nib文件尚未完全加载,并且此时的IBOutlet
实例变量仍然是nil
稍后,在像awakeFromNib
、viewDidLoad
、viewdisped
和viewdisped
这样的方法中,IBOutlets
将被正确设置,并且您可以与UI对象通信
在您的情况下,
viewDidLoad
或viewwillbeen
可能是设置此值的好方法(具体取决于您的具体需要)。当您想使用IBOutlet
实例变量更改用户界面中的某些内容时,您需要确保在适当的时间调用代码
例如,假设您有一个如下所示的类:
@interface MDViewController : UIViewController
@property (nonatomic, strong) IBOutlet UILabel *usernameLabel;
@end
还有一个MDViewController.nib
文件,它保存视图控制器的UI,假设您希望将标签的内容设置为某个值
通常,像init
或initWithCoder:
这样的init
方法在对象的生命周期中调用得太早,无法与UI中的对象通信,因为nib文件尚未完全加载,并且此时的IBOutlet
实例变量仍然是nil
稍后,在像awakeFromNib
、viewDidLoad
、viewdisped
和viewdisped
这样的方法中,IBOutlets
将被正确设置,并且您可以与UI对象通信
在您的情况下,
viewDidLoad
或viewwillbeen
可能是设置此值的好方法(具体取决于您的具体需要)。尝试在Mac电脑上安装字体,打开字体手册,查看其中显示的名称。它是PatrickHand Regular吗?它上面写着“PostScript名称:PatrickHand Regular”,您试图在控制器类的哪个方法中调用self.usernamelab.font=…
?(例如,init
,viewDidLoad
,视图将出现
,等等)我猜你已经对你的项目进行了“清理”,对吧?在initWithCoder中,这是错误的吗?试着在Mac上安装字体,打开字体手册,看看里面显示了什么名称。它是PatrickHand Regular吗?它上面写着“PostScript名称:PatrickHand Regular”,您试图在控制器类的哪个方法中调用self.usernamelab.font=…
?(例如,init
,viewDidLoad
,视图将出现
,等等)我猜你已经对你的项目进行了“清理”,对吧?在initWithCoder中,这是错的吗?