我有一个UITextView
withcontentSize
属性设置为一个非常大的值1000
,宽度UITextView
为 200,启用滚动,启用水平弹跳和禁用垂直弹跳,但这UITextView
仍然在大文本上垂直滚动。我怎样才能强制水平滚动呢?
ps这里的解决方案不起作用。
我有一个UITextView
withcontentSize
属性设置为一个非常大的值1000
,宽度UITextView
为 200,启用滚动,启用水平弹跳和禁用垂直弹跳,但这UITextView
仍然在大文本上垂直滚动。我怎样才能强制水平滚动呢?
ps这里的解决方案不起作用。
UITextView 是 - UIScrollView 的子类。所以你可以使用 ScrollViewDelegate 方法来禁用它。
利用 -
- (void)scrollViewDidScroll:(id)aScrollView
{
[aScrollView setContentOffset:CGPointMake([scrollView contentOffset].x, 0.0)];
}
我尝试了许多不同的方法来让水平滚动功能按预期工作,但这些方法都不适合我,所以我创建了一个 UIScrollView 并在滚动视图中添加了一个 UILabel 作为子视图,并设置了框架的宽度根据其文本和文本字体动态添加标签,之后我将滚动视图的 contentSize 设置为等于标签的新框架宽度和高度。使用此方法,您将获得水平滚动文本。
使用 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);
当然,您必须用各自的规格替换文本和字体