【问题标题】:how to force horizontal scrolling only on UITextView如何仅在 UITextView 上强制水平滚动
【发布时间】:2012-05-22 14:01:02
【问题描述】:

我有一个UITextViewcontentSize 属性设置为一个非常大的值1000UITextView 的宽度是 200,启用滚动,启用水平弹跳和禁用垂直弹跳但是这个@ 987654326@ 仍然在大文本上垂直滚动。 我怎样才能强制水平滚动呢?

附言the solution here 不起作用。

【问题讨论】:

    标签: iphone ios xcode uiscrollview uitextview


    【解决方案1】:

    UITextView 是 UIScrollView 的子类。所以你可以使用 ScrollViewDelegate 方法来禁用它。

    使用 -

    - (void)scrollViewDidScroll:(id)aScrollView
    {
        [aScrollView setContentOffset:CGPointMake([scrollView contentOffset].x, 0.0)];
    }
    

    【讨论】:

      【解决方案2】:

      我尝试了许多不同的方法来让水平滚动功能按预期工作,但这些方法都不适合我,所以我创建了一个 UIScrollView 并在滚动视图中添加了一个 UILabel 作为子视图,并设置了框架的标签的宽度根据其文本和文本字体动态,之后我将滚动视图的 contentSize 设置为等于标签的新框架宽度和高度。使用此方法,您将获得水平滚动的文本。

      【讨论】:

        【解决方案3】:

        使用 JAHelia 的建议,这对我有用:

        self.dishNameLabel.text = @"Here is some very longgggg text to test with";
        float width = ceil([self.dishNameLabel.text sizeWithAttributes:@{NSFontAttributeName: [UIFont fontWithName:@"WorkSans-SemiBold" size:15.0]}].width);
        self.dishNameLabel.frame = CGRectMake(self.dishNameLabel.frame.origin.x, self.dishNameLabel.frame.origin.y, width, self.dishNameLabel.frame.size.height);
        self.dishNameScrollView.contentSize = CGSizeMake( width, self.dishNameScrollView.frame.size.height);
        

        当然,您必须用各自的规范替换文本和字体

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-03-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多