2017-07-10 17 views
5

Tôi đang cố gắng tải các ngòi năng động dưới dạng bản xem phụ của vùng chứa. Tôi gần như đã có nó để làm việc, ngoại trừ việc các cuộc phỏng vấn có một bù đắp tôi dường như không thể thoát khỏi (xem hồng trong hình dưới đây).Làm cho chế độ xem phụ phù hợp với bên trong vùng chứa và thay đổi kích thước chính xác

enter image description here

Từ gỡ lỗi Xem Hierarchy:

enter image description here

Như bạn có thể thấy trong bức ảnh thứ 2, khung container được đặt đúng vị trí, trong khi subview không phải là, vì một lý do.

Tôi thực sự không biết điều gì sẽ xảy ra với tính năng tự động trả lời.

Dưới đây là đoạn code mà giao dịch với tải nib và gán nó như subview:

enter image description here

Mã nhận xét ra là tất cả những điều tôi đã cố gắng để làm cho nó hoạt động, không có thành công. Tôi nghĩ rằng autolayout sẽ làm việc một mình mà không cần phải làm gì cả, nhưng theo mặc định nó sẽ tải nib mà không thay đổi kích thước nó.

đó có nghĩa là hàng đầu và neo đầu là chính xác, tuy nhiên ngòi sau đó sử dụng kích thước của nó đầy đủ ... (hình ảnh cf dưới đây)

enter image description here

Vì vậy, câu hỏi là, những gì cần thiết cho tôi để làm gì để tải ngòi và làm cho nó phù hợp với chế độ xem vùng chứa?

Trả lời

4

Bạn nên thêm các ràng buộc vào NibView thay vì thiết lập các giới hạn và khung của NibView.

Cố gắng gọi hàm sau (addFullScreenConstraint) trên NibView sau khi thêm NibView như là một subview của quan điểm nội dung:

extension UIView { 

    /// Adds constraints to this `UIView` instances `superview` object 
    /// to make sure this always has the same size as the superview. 
    /// Please note that this has no effect if its `superview` is `nil` 
    /// – add this `UIView` instance as a subview before calling this. 
    func addFullScreenConstraints() { 
     guard let superview = self.superview else { 
      return 
     } 

     self.translatesAutoresizingMaskIntoConstraints = false 
     superview.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "H:|-0-[subview]-0-|", 
                   options: .directionLeadingToTrailing, metrics: nil, views: ["subview": self])) 
     superview.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:|-0-[subview]-0-|", 
                   options: .directionLeadingToTrailing, metrics: nil, views: ["subview": self])) 
    } 
} 
+0

Thánh guacamole, cuối cùng nó làm việc! Cảm ơn rất nhiều – Skwiggs

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