Медленное время загрузки пользовательского UIView со свойством UITextView в Swift
Я изначально спросилэтот вопрос, Я предполагал, что причиной медленного времени загрузки моего пользовательского представления было наложение нескольких представлений друг на друга или, возможно, из-за некоторыхпроблема рекурсии, Тем не менее, после вырезания все большего и большего кода, чтобы увидеть, что будет иметь значение, все сводилось к тому, был ли у меняUITextView
присутствует или нет. Поскольку видимый источник моей проблемы настолько отличается от того, что я ожидал в своем первом вопросе, я решил начать новый вопрос, а не добавлять длинное обновление к старому.
Я настроил свой тестовый проект с двумя контроллерами представления. Кнопка на первом контроллере представления вызывает переход к шоу второго контроллера представления. На втором контроллере вида есть мой собственный вид. (Использование второго контроллера представления позволило мне понять, сколько времени потребовалось для загрузки пользовательского представления.)
Код пользовательского просмотра:
import UIKit
@IBDesignable class UIMongolTextView: UIView {
var textView = UITextView() // key line
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
override init(frame: CGRect){
super.init(frame: frame)
}
}
Как видите, единственное отличие отUIView
это то, что я добавилUITextView
имущество. И именно этот пользовательский вид загружается очень медленно. Запустив инструмент Allocations в Instruments, я получаю следующие результаты (количество 997):
Однако, если я закомментирую строку
//var textView = UITextView()
тогда я пользовательский вид загружается очень быстро и имеет только 7.
Что здесь происходит? Можно ли использоватьUITextView
свойство в пользовательском представлении и избежать этого медленного времени загрузки?