2015-07-17 5 views
0

У меня есть представление Tableview, некоторым рессоном, я должен добавить это представление таблицы в Scrollview. Я использовал autolayout, но этот tableview не авто изменяет размер, когда я поворачиваю экран на пейзаж.Как изменить размер Subview с Autolayout

Как сделать это табличное представление, включая прокрутку в том же размере, когда я поворачиваю экран на пейзаж?

Вот мой код:

scrollViewMain = UIScrollView() 
scrollViewMain.contentInset = UIEdgeInsets(top: 34, left: 0, bottom: 52, right: 0) 
scrollViewMain.scrollIndicatorInsets = UIEdgeInsets(top: 34, left: 0, bottom: 52, right: 0) 
scrollViewMain.delegate = self 
scrollViewMain.scrollEnabled = true 
scrollViewMain.showsHorizontalScrollIndicator = false 
scrollViewMain.showsVerticalScrollIndicator = true 
scrollViewMain.indicatorStyle = UIScrollViewIndicatorStyle.White 
scrollViewMain.setTranslatesAutoresizingMaskIntoConstraints(false) 
view.addSubview(scrollViewMain) 

view.backgroundColor = BACKGROUND_COLOR 


headerView = UIView(frame: CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_WIDTH/3)) 
headerView.backgroundColor = UIColor.clearColor() 
headerView.setTranslatesAutoresizingMaskIntoConstraints(false) 
headerView.layer.masksToBounds = true 

tableViewMain = UITableView() 
tableViewMain.contentInset = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0) 
tableViewMain.scrollIndicatorInsets = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0) 
tableViewMain.delegate = self 
tableViewMain.dataSource = self 
tableViewMain.backgroundColor = UIColor.clearColor() 
tableViewMain.backgroundView = nil 
tableViewMain.opaque = false 
tableViewMain.separatorColor = UIColor(rgb: 0x3e3e3e) 
tableViewMain.indicatorStyle = UIScrollViewIndicatorStyle.White 
tableViewMain.scrollEnabled = false 
tableViewMain.setTranslatesAutoresizingMaskIntoConstraints(false) 
scrollViewMain.addSubview(tableViewMain) 
tableViewMain.registerClass(MoviesTableViewCell.self, forCellReuseIdentifier: "MoviesTableViewCell") 
tableViewMain.tableHeaderView = headerView 

let viewDictionary = ["scrollViewMain": scrollViewMain, "tableViewMain": tableViewMain, "headerView": headerView] 

let scrollViewMainConstraint_Horizontal:NSArray = NSLayoutConstraint.constraintsWithVisualFormat(
    "H:|-0-[scrollViewMain]-0-|", 
    options: nil, 
    metrics: nil, 
    views: viewDictionary 
) 
let scrollViewMainConstraint_Vertical:NSArray = NSLayoutConstraint.constraintsWithVisualFormat(
    "V:|-0-[scrollViewMain]-0-|", 
    options: nil, 
    metrics: nil, 
    views: viewDictionary 
) 

view.addConstraints(scrollViewMainConstraint_Horizontal as! [AnyObject]) 
view.addConstraints(scrollViewMainConstraint_Vertical as! [AnyObject]) 

ответ

1

Я думаю, что проблема в том, что вид таблицы не имеют каких-либо ограничений, поэтому он не знает, какие правила соблюдать, когда экран вращается. Я не знаю точно, какие ограничения вы хотите, но, предполагая, что вы хотите, чтобы представление таблицы заполнило весь вид прокрутки, вы можете добавить ограничения, очень похожие на те, которые вы использовали для просмотра прокрутки (вывод пальца, трейлинг, верхний и нижнее пространство для наблюдения).