1

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

ps这里的解决方案不起作用。

4

3 回答 3

5

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

利用 -

- (void)scrollViewDidScroll:(id)aScrollView
{
    [aScrollView setContentOffset:CGPointMake([scrollView contentOffset].x, 0.0)];
}
于 2012-05-22T14:17:32.250 回答
2

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

于 2012-05-23T10:52:04.637 回答
1

使用 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);

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

于 2016-03-29T19:22:41.690 回答