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;