Ios 通过UISlider更改UITextView的字体大小
我需要根据Ios 通过UISlider更改UITextView的字体大小,ios,objective-c,uitextview,uislider,Ios,Objective C,Uitextview,Uislider,我需要根据UISlider的值更改UITextView的字体大小 用viewDidLoad()编写 tvVarse.text=strTextToShow//tvVarse是UITEXTVIEWOUTLE,strTextToShow是要在textView上显示的文本 检查: UITextView和UISlider的插座都已连接 UITextVIew在插座中选中行为“可选” 给定的UISlider最小值为13英寸,最大值为25英寸 出口 编辑: ui视图的结构 我尝试了以下代码: 尝试1: - (
UISlider
的值更改UITextView
的字体大小
用viewDidLoad()编写
tvVarse.text=strTextToShow//tvVarse是UITEXTVIEWOUTLE,strTextToShow是要在textView上显示的文本
检查:
UITextView
和UISlider
的插座都已连接
UITextVIew
在插座中选中行为“可选”
给定的UISlider
最小值为13英寸,最大值为25英寸
出口
编辑:
ui视图的结构
我尝试了以下代码:
尝试1:
- (IBAction)sliderTap:(UISlider*)sender //Value changed action for UISlider
{
tvVarse.font = [tvVarse.font fontWithSize:sender.value];
}
尝试2:
- (IBAction)sliderTap:(UISlider*)sender //Value changed action for UISlider
{
dispatch_async(dispatch_get_main_queue(), ^{
tvVarse.font = [tvVarse.font fontWithSize:sender.value];
});
}
尝试3:
- (IBAction)sliderTap:(UISlider*)sender //Value changed action for UISlider
{
dispatch_async(dispatch_get_main_queue(), ^{
tvVarse.text=strTextToShow;
tvVarse.font = [tvVarse.font fontWithSize:sender.value];
[tvVarse setNeedsLayout];
[tvVarse setNeedsDisplay];
});
}
尝试4:
- (IBAction)sliderTap:(UISlider*)sender //Value changed action for UISlider
{
dispatch_async(dispatch_get_main_queue(), ^{
tvVarse.font = [tvVarse.font fontWithSize:sender.value];
tvVarse.text=strTextToShow;
[tvVarse setNeedsLayout];
[tvVarse setNeedsDisplay];
});
}
尝试5:
- (IBAction)sliderTap:(UISlider*)sender //Value changed action for UISlider
{
tvVarse.font = [tvVarse.font fontWithSize:sender.value];
tvVarse.text=strTextToShow;
}
现在有趣的是,当我提供其他文本时,它是有效的,即
工作但不同的小文本:
- (IBAction)sliderTap:(UISlider*)sender //Value changed action for UISlider
{
tvVarse.text=@"My name is Manab";
tvVarse.font = [tvVarse.font fontWithSize:sender.value];
}
有人能告诉我为什么这些都不起作用吗?所以我尝试了这个有趣的把戏(非常有效):
但我不知道为什么它会起作用 试试这个
首先设置字体,然后写入文本…
@Fahim Parkar不工作,我在做Try 4的时候也试过,谢谢你的回答。iOS版本是什么?iOS 9.2用于iPhone,在模拟器vs 9.2中测试
- (IBAction)sliderTap:(UISlider*)sender
{
tvVarse.text=@"";//Just provided blank text before loading textview again
tvVarse.font = [tvVarse.font fontWithSize:sender.value];
tvVarse.text=strTextToShow;
}
tvVarse.font = [tvVarse.font fontWithSize:sender.value];
tvVarse.text=strTextToShow;