На рисунке ниже показана графическая иерархия отладки Xcode для UIViewController
.Похоже, мне нужно уничтожить дополнительные данные из UITextViews
, которые воссоздаются после редактирования в массиве UITextViews
.Каждый раз, когда я делаю изменение, я устанавливаю массив UITextViews
в [], а затем воссоздаю его с обновленными данными.Несмотря на то, что я проверяю, что массив UITextView
действительно сбрасывается на ноль элементов, а затем воссоздается с ожидаемым количеством элементов, эти призрачные изображения задерживаются на экране, и иерархия отладки показывает, что что-то не удаляется.
Я подозреваю, что есть какая-то служебная работа, которую я должен сделать, чтобы найти и уничтожить дополнительные данные, связанные с UITextViews
, и что установка массива обратно в ноль не очищает все из моего подпредставления, но я не уверен, что этовозможно.Я надеюсь, что моя ошибка кажется очевидной тем, у кого больше опыта, и вы укажете мне правильное направление.
Я также делюсь некоторымикод ниже, но я подозреваю, что визуальное восприятие может быть самым прямым ключом для опытных, чтобы привести меня в порядок.
var topOfViewFrame: CGFloat = 0
textViewArray = []
for textBlock in textBlocks.textBlocksArray { // a textBlock has formatting data for a UITextView
let textBlockHeight = CGFloat(textBlock.numberOfLines) * textBlock.blockFontSize
let viewFrame = CGRect(x: 0, y: topOfViewFrame, width: textBoxWidth, height: textBlockHeight)
var newTextView = UITextView(frame: viewFrame)
newTextView.center = CGPoint(x: screenView.frame.width/2, y: topOfViewFrame + (textBlockHeight/2)) // screenView is the 320x240 subView holding the [UITextViews]
let viewFont = UIFont(name: "AvenirNextCondensed-Medium", size: textBlock.blockFontSize)
newTextView.font = viewFont
newTextView.text = textBlock.blockText
newTextView = configureTextBlockView(textBoxView: newTextView, textBlock: textBlock)
textViewArray.append(newTextView)
screenView.addSubview(newTextView) // screenView is the subview holding the [UITextViews]
topOfViewFrame += newTextView.frame.height // put the next UITextView directly below the previous one
}
Спасибо!