2015-01-01 25 views
5

Tôi có một viewController, với một tableview bên trong một scrollview.Điều chỉnh chiều cao của chế độ xem cuộn theo chiều cao của bảng con của trẻ trong SWIFT

tôi cần phải cập nhật trình độ cao của tableview, và sau đó, chiều cao của scrollview (chiều cao scrollview của phụ thuộc vào chiều cao của tableview).

-my View Controller 
    -View 
    -ScrollView 
     -Container View 
     -TableView 

Vì vậy, tôi đã viết mã này trong viewDidAppear của viewController tôi:

override func viewDidAppear(animated: Bool) { 

    super.viewDidAppear(animated) 

    var frame:CGRect = self.tableView.frame 
    frame.size.height = tableView.contentSize.height 
    self.tableView.frame = frame 

    scrollView.contentSize=CGSizeMake(scrollView.frame.size.width, tableView.frame.origin.y + tableView.frame.height) 

} 

Nếu tôi kiểm tra trong giao diện điều khiển, viewDidAppear được gọi TRƯỚC tất cả các cellForRowAtIndexPath. Trong trường hợp này, mọi thứ đều hoạt động như tôi muốn.

Trong viewController của tôi, tôi có một nút mở ra một modalViewController. Trong modalViewController này, tôi thêm một dữ liệu mới trong tableview của tôi (vì vậy, một ô mới).

Khi tôi đóng modalViewController với dismissViewControllerAnimated, viewDidAppear được gọi nhưng SAU tất cả các cellForRowAtIndexPath. viewController tôi không được hiển thị một cách chính xác, tableview được cắt, tôi không thể di chuyển đến dưới cùng của tableView của tôi. Mã của tôi không hoạt động.

Tôi đang làm việc với Swift và bố trí tự động.

Trả lời

0

Cố gắng kêu gọi này trong điều khiển điểm của bạn:

automaticallyAdjustsScrollViewInsets = false 

Bạn cũng có thể thiết lập nó trong giao diện Builder nếu bạn thích

Các vấn đề liên quan