Создание элемента пользовательского интерфейса не позволит изменить позицию

#xcode #swift

#xcode #swift

Вопрос:

Я попробовал это:

 @IBAction func test(sender : AnyObject){
    let height:CGFloat = 44
    var tableFrame:CGRect = tableView.frame;
    var fieldFrame = CGRect()
    fieldFrame.origin = tableFrame.origin
    fieldFrame.size.height = height
    fieldFrame.size.width = tableFrame.size.width
    var textField = UITextField(frame: fieldFrame)
    textField.backgroundColor = UIColor(white: 0, alpha: 1)
    view.addSubview(textField)
    tableFrame.size.height = tableFrame.size.height - height
    tableFrame.origin.y = tableFrame.origin.y   height
    tableView.frame = tableFrame
}
  

При запуске появляется черное поле, но таблица не перемещается и не меняет размер. Удаление строки

 view.addSubview(textField)
  

позволяет таблице изменять размер и перемещаться, но, очевидно, поле не отображается. В чем проблема?

Ответ №1:

ваше текстовое поле фактически находится поверх tableview. Ваши действия с касанием, вероятно, будут перенаправлены в текстовое поле, а не в табличное представление

Комментарии:

1. Извините, какие сенсорные действия? Я имел в виду, что таблица не изменит свою позицию так, как должна tableFrame.origin.y = tableFrame.origin.y height

2. Извините, когда вы сказали, что не можете перемещать таблицу, я подумал, что вы говорите о прокрутке для tableview. Вы пытались добавить текстовое поле после изменения размера таблицы?

3. Я только что попробовал запустить ваш код, и он изменяет размер tableview. Попробуйте добавить цвет границы к рамке, и вы сможете увидеть, куда она движется. Пара вещей, которые я сделал для проверки, — это изменить высоту на что-то вроде 100 для tableview, а начало координат y сдвинуто на 100 сверху, чтобы я мог видеть границы, которые были скрыты из-за панели навигации