#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 сверху, чтобы я мог видеть границы, которые были скрыты из-за панели навигации