UIScrollView 中的 UITextView 都在另一个 UIScrollView 中

Posted

技术标签:

【中文标题】UIScrollView 中的 UITextView 都在另一个 UIScrollView 中【英文标题】:UITextView in UIScrollView both inside another UIScrollView 【发布时间】:2013-07-18 10:28:59 【问题描述】:

我正在将滚动视图中的一系列文本视图添加到滚动视图中。我可以在其滚动视图中绘制第一个文本视图。当我尝试添加第二个文本视图时,关联的滚动视图会被绘制,但不会添加文本视图。谁能指出我在这里做错了什么?

for (int i = 0; i < numberOfViews; i ++) 

    CGFloat xOrigin = i * 230;
    CGRect textRect = CGRectMake(xOrigin, 0, 210, 250);
    CGRect imageRect = CGRectMake(xOrigin, 30, 210, 5);
    CGRect subscrollRect = CGRectMake(xOrigin, 40, 210, 250);

    _image1 = [[UIImageView alloc] initWithFrame:imageRect];
    _image1.image = [UIImage imageNamed:@"horizontal_line_02.png"];

    if (i == 0) 
        _textView1 = [[UITextView alloc] initWithFrame:textRect];
        _textView1.delegate = self;
        _textView1.userInteractionEnabled = NO;
        _textView1.text = @"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.";
        _subScrollView1 = [[UIScrollView alloc] initWithFrame:subscrollRect];
        [_subScrollView1 setContentSize:CGSizeMake(210, 500)];
        [_subScrollView1 addSubview:_textView1];
        [_textScrollView addSubview:_subScrollView1];
        [_textScrollView addSubview:_image1];
    
    else if (i == 1) 
        _textView2 = [[UITextView alloc] initWithFrame:textRect];
        _textView2.delegate = self;
        _textView2.userInteractionEnabled = YES;
        _textView2.text = @"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent accumsan elementum tempor. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Integer sapien turpis, laoreet id ullamcorper sed, accumsan id ligula. Etiam euismod, augue sed porta eleifend, mauris dolor scelerisque velit, ac facilisis libero elit et arcu. Morbi ligula libero, porta id leo ut, convallis adipiscing enim.";
        _subScrollView2 = [[UIScrollView alloc] initWithFrame:subscrollRect];
        [_subScrollView2 setContentSize:CGSizeMake(210, 500)];
        [_subScrollView2 addSubview:_textView2];
        [_textScrollView addSubview:_subScrollView2];
        [_textScrollView addSubview:_image1];
    

【问题讨论】:

你为什么在滚动中添加textview,然后又在滚动中添加?无需添加两个滚动,您只需将可编辑属性设置为关闭并启用用户交互...它会自动将滚动添加到您的文本视图中!! 啊哈!我已将可编辑属性设置为关闭,但没有启用用户交互。谢谢。 注意:scrollEnabled 也必须设置为 YES。 【参考方案1】:

看来您每次都使用相同的 textField2。 (所以,基本上你每次迭代都会发布它,这应该会显示最后一个。

代替:

_textView2 = [[UITextView alloc] initWithFrame:textRect]; 

试试:

UITextView *textView2 = [[UITextView alloc] initWithFrame:textRect]; 

【讨论】:

以上是关于UIScrollView 中的 UITextView 都在另一个 UIScrollView 中的主要内容,如果未能解决你的问题,请参考以下文章

水平 UIScrollView 中的多个垂直滚动 UIScrollView

检测 UIScrollView 中的滚动事件并发送到 UITableView 或其他 UIScrollView

UIScrollView 子视图中的水平 UISwipeGestureRecognizer ? (UIScrollView 只需要识别垂直滚动)

UIScrollView 中的 UITextView 都在另一个 UIScrollView 中

UIScrollView 中的 UITextView 中的键盘方向

uiscrollview 中的 uitableview(滚动问题)