Ios UITableViewCell中的UITextView响应非常慢
我有一个带有一个原型单元的动态UITableViewController。此单元格中有2个UITextView。它们中的每一个都应该是可编辑的。如果这很重要:数据来自json文件,并以NSArray的形式存在。我用Swift编程,所以正确的类型是[[[String:String]]]。 我的问题是,当我点击其中一个文本视图时,iPad似乎加载了几秒钟,而在此期间,主线程被阻塞,什么也没有发生。然后键盘弹出,我可以编辑文本。选择第一个文本视图后,我可以在它们之间快速切换。即使TextView辞退了他的第一响应者,我也可以点击其中一个,键盘会很快打开。 我怎样才能在一开始就加快装货速度? 我试着打电话Ios UITableViewCell中的UITextView响应非常慢,ios,uitableview,swift,Ios,Uitableview,Swift,我有一个带有一个原型单元的动态UITableViewController。此单元格中有2个UITextView。它们中的每一个都应该是可编辑的。如果这很重要:数据来自json文件,并以NSArray的形式存在。我用Swift编程,所以正确的类型是[[[String:String]]]。 我的问题是,当我点击其中一个文本视图时,iPad似乎加载了几秒钟,而在此期间,主线程被阻塞,什么也没有发生。然后键盘弹出,我可以编辑文本。选择第一个文本视图后,我可以在它们之间快速切换。即使TextView辞退了
myTextView.becomeFirstResponder()
在cellForRowAtIndexPah中,仅针对第一个文本视图,然后整个视图在显示前加载大约4秒。。
我希望你明白我的意思。如果您需要任何代码来更好地理解它,请告诉我:
提前谢谢
编辑1:
海关等级
class BeschreibungZusatzCell: UITableViewCell, UITextViewDelegate {
var delegate: CellDelegate?
@IBOutlet weak var titelTextView: CellTextView!
@IBOutlet weak var beschreibungTextView: CellTextView!
override func layoutSubviews() {
super.layoutSubviews()
if titelTextView != nil {
titelTextView.delegate = self
}
if beschreibungTextView != nil {
beschreibungTextView.delegate = self
}
}
var titel: String! {
didSet{
titelTextView.text = titel
}
}
var beschreibung: String! {
didSet{
beschreibungTextView.text = beschreibung
}
}
func textView(textView: UITextView, shouldChangeTextInRange range: NSRange, replacementText text: String) -> Bool {
if text == "\n" {
textView.resignFirstResponder()
delegate?.cell(self, didChangeContentAtIndexPath: (textView as CellTextView).indexPath!, andSpalte: (textView as CellTextView).spalte!, toString: textView.text)
return false
}
delegate?.cell(self, didChangeContentAtIndexPath: (textView as CellTextView).indexPath!, andSpalte: (textView as CellTextView).spalte!, toString: textView.text)
return true
}
}
对不起,有些德语名称,我认为它们对于理解代码并不重要:因此单元格有一个委托,它是我的TableViewController。两个文本视图中的每一个都有一个委托,即单元格。因此,如果文本视图更改其字符串,我可以在TableViewController中获得一条消息。我需要它来保存更改。将becomeFirstResponder调用移动到didEndDisplayingCell或其他方法中。cellForRowAtIndexPath用于配置单元格,而不是执行与UI相关的任务。它是一个单元格,具有唯一的重用标识符?我唯一的猜测是可能有多个细胞?更多的代码可能会有所帮助。这是一个原型,用于多个看起来相同但包含不同文本的单元格。好的,您如何获得对该文本视图的引用?单元格是一个自定义类。如果是上面问题中的代码,我会复制代码:尝试将becomeFirstResponder调用移出cellForRowAtIndexPath。我不想在开始时显示键盘,这只是为了测试是否会更快,但事实并非如此。如果用户点击其中一个文本字段,我想显示键盘。。