Ios UITextView字体大小未更新
我有一个Ios UITextView字体大小未更新,ios,iphone,objective-c,uitextview,Ios,Iphone,Objective C,Uitextview,我有一个UITextView在UIViewController中,它包含一些按钮:其中两个按钮用于缩放UITextView中包含的文本defaultFontSize在viewDidLoad()上初始化 这些按钮有一个链接到它们的iAction - (IBAction)zoomIn:(id)sender { if(defaultFontSize < 60) { defaultFontSize = defaultFontSize + 2; [theCon
UITextView
在UIViewController
中,它包含一些按钮:其中两个按钮用于缩放UITextView
中包含的文本defaultFontSize
在viewDidLoad()上初始化
这些按钮有一个链接到它们的iAction
- (IBAction)zoomIn:(id)sender {
if(defaultFontSize < 60) {
defaultFontSize = defaultFontSize + 2;
[theContent setFont:[UIFont systemFontOfSize:defaultFontSize]];
}
}
/* ... */
- (IBAction)zoomOut:(id)sender {
if(defaultFontSize > 14) {
defaultFontSize = defaultFontSize - 2;
[theContent setFont:[UIFont systemFontOfSize:defaultFontSize]];
}
}
-(iAction)缩放:(id)发送方{
如果(默认字体大小<60){
defaultFontSize=defaultFontSize+2;
[内容集字体:[UIFont systemFontOfSize:defaultFontSize]];
}
}
/* ... */
-(iAction)zoomOut:(id)发送方{
如果(默认字体大小>14){
defaultFontSize=defaultFontSize-2;
[内容集字体:[UIFont systemFontOfSize:defaultFontSize]];
}
}
当我第一次显示UIViewController
并点击zoomIn
或zoomOut
按钮时,内容中的文本大小不会改变
更准确地说:调用了这些方法(我放了一些日志),但是没有更新UITextView
字体大小
顺便说一句,如果我点击其他按钮(点击的按钮会改变屏幕的不透明度,所以我认为这会迫使屏幕刷新)点击我之前所做的所有点击(即,如果我点击缩放2次,我得到的字体大小为+4),然后开始正常工作,它就会改变
问题:
每当我想“刷新”UITextView时,如何(如果可能)强制执行?
为什么我的按钮在开始显示UIViewController
时不工作,但在“屏幕刷新”后又工作
如果您能提供帮助,我将非常高兴:-)更改字体大小后立即在UITextView上调用setNeedsLayout。某些方法必须使布局无效(如更改不透明度),这很有意义。更改字体特征不会使布局无效-您必须告诉操作系统需要重新布局
- (IBAction)zoomIn:(id)sender {
if(defaultFontSize < 60) {
defaultFontSize = defaultFontSize + 2;
[theContent setFont:[UIFont systemFontOfSize:defaultFontSize]];
[theContent setNeedsLayout];
}
}
- (IBAction)zoomOut:(id)sender {
if(defaultFontSize > 14) {
defaultFontSize = defaultFontSize - 2;
[theContent setFont:[UIFont systemFontOfSize:defaultFontSize]];
[theContent setNeedsLayout];
}
}
-(iAction)缩放:(id)发送方{
如果(默认字体大小<60){
defaultFontSize=defaultFontSize+2;
[内容集字体:[UIFont systemFontOfSize:defaultFontSize]];
[内容设置需要删除];
}
}
-(iAction)zoomOut:(id)发送方{
如果(默认字体大小>14){
defaultFontSize=defaultFontSize-2;
[内容集字体:[UIFont systemFontOfSize:defaultFontSize]];
[内容设置需要删除];
}
}
愚蠢的解决方案成功了。。。我将内容保存在一个临时变量中并重新插入。。。
不是很自豪,但它起作用了
- (IBAction)zoomIn:(id)sender {
if(defaultFontSize < 60) {
NSString *tmpString;
tmpString = theContent.text;
defaultFontSize = defaultFontSize + 2.0;
[theContent setFont:[UIFont systemFontOfSize:defaultFontSize]];
[theContent setText:@""];
[theContent setText:tmpString];
}
}
-(iAction)缩放:(id)发送方{
如果(默认字体大小<60){
NSString*tmpString;
tmpString=content.text;
defaultFontSize=defaultFontSize+2.0;
[内容集字体:[UIFont systemFontOfSize:defaultFontSize]];
[内容设置文本:@”“;
[内容设置文本:tmpString];
}
}
这样对我来说很好。你真的把你的按钮连接到你的动作上了吗?我把我用来测试它的项目贴到我的GIT上了-你可以在这里下载:动作是连接的,在我强制屏幕“刷新”后它们工作正常