【问题标题】:Changing font size of UITextView by UISlider通过 UISlider 更改 UITextView 的字体大小
【发布时间】:2016-04-21 12:47:59
【问题描述】:

我需要根据UISlider的值改变UITextView的字体大小。

写于viewDidLoad()

tvVarse.text=strTextToShow; //tvVarse is the UITextViewOutlet, strTextToShow is the text to be shown on textView

已检查:

  1. UITextViewUISlider 的插座均已连接。
  2. UITextVIew 在插座中检查了“可选”行为。
  3. 给定UISlider,最小值为 13,最大值为 25 in 奥特莱斯。

编辑: UIView的结构

我尝试了以下代码:

尝试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];
}

谁能告诉我为什么这些不起作用?

【问题讨论】:

  • iOS 版本是多少?
  • iOS 9.2 for iPhone,在 Simulator vs 9.2 中测试

标签: ios objective-c uitextview uislider


【解决方案1】:

试试这个...

先设置字体,再写文字……

tvVarse.font = [tvVarse.font fontWithSize:sender.value];
tvVarse.text=strTextToShow;

【讨论】:

  • 不工作@Fahim Parkar,我在尝试4时也尝试过,谢谢你的回答。
【解决方案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;

}

但我不知道它为什么起作用!!

【讨论】:

    猜你喜欢
    • 2011-07-22
    • 2011-09-24
    • 2012-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-02
    • 2011-08-09
    • 2016-07-04
    相关资源
    最近更新 更多