【问题标题】:Want my UITextView only to be scroll enabled when editing希望我的 UITextView 仅在编辑时启用滚动
【发布时间】:2018-11-12 13:22:24
【问题描述】:

我无法根据不同的标准更改滚动选项以适用于我的项目。

我有一个包含不同单元格的 TableViewController。其中一些单元格包含一个空的 UITextView。上下滚动 TableView 时,点击 textView 并尝试滚动很烦人,滚动的是空的 TextView 而不是 TableView。

我的解决方案是禁用 TextView 的滚动,然后在开始编辑时启用它。但是我无法让它工作。我已取消选中“启用滚动”并为保存 TextView 的单元格实现了以下几行:

- (void)textViewDidBeginEditing:(UITextView*)textView {
    [self.textView setScrollEnabled:YES]; }

- (void)textViewDidEndEditing:(UITextView*)textView {
    [self.textView setScrollEnabled:NO]; }

我已经在 xcode 中对此进行了调试,并且代码按预期执行。但是当我输入文本时,TextView 没有启用滚动。我错过了什么?

我什至添加了以下内容来检查滚动选项的状态:

-(void)textViewDidChange:(UITextView*)textView {
    BOOL scrollStatus = self.bodyText.scrollEnabled;
    BOOL scrollStatusInput = textView.scrollEnabled;
}

我可以看到 scrollEnabled 在这两行中都是“YES”。但我还是不能滚动。

【问题讨论】:

    标签: ios objective-c


    【解决方案1】:

    尝试通过以下方式设置委托:

    cell.textView.delegate = self;
    

    还有一件事,你在做

    [self.textView setScrollEnabled:YES];
    

    self.textView 是否包含 tableViewCell 的 textView 的引用?如果可以,它应该可以工作,否则您需要保留 TableViewCell 的 textView 的引用。希望这会有所帮助.. :)

    【讨论】:

    • 感谢您的回复。但是,仍然无法正常工作。我拥有的代码用于单元格 m 文件,而 self.textView 是指单元格 textView。我也期待'cell.textView.delegate = self;'应该是'self.textView.delegate = self;'就我而言 - 对不起,如果其中一些看起来很简单,但对于目标 c 来说仍然很新。
    猜你喜欢
    • 2012-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多