2016-09-19 20 views
7

trong mỗi xib của tôi nó hỏi tôi thiết bị mặc định nào tôi muốn sử dụng. Tôi đã chọn IPhone 6 và cập nhật các khung hình cho những người được đề xuất. Bây giờ, bất kỳ chế độ xem nào bị ảnh hưởng trong chế độ xemWill hoặc viewDidLayoutSubviews đều bị sai lệch. Tất cả đều có khung hình của CGRect (0, 0, 1000, 1000).UIView khung hình sai trong viewDidLayoutSubviews sau khi nâng cấp lên XCode 8

Dưới đây là mã của tôi:

self.headImage.layer.cornerRadius = ceilf(CGRectGetWidth(self.headImage.frame)/2); 
self.headImage.layer.masksToBounds = YES; 

Tự hỏi có chuyện gì thế với điều này và liệu có một giải pháp. Cảm ơn

+0

Bạn có thể vui lòng cho mã của bạn? –

+0

self.headImage.layer.cornerRadius = ceilf (CGRectGetWidth (self.headImage.frame)/2); ; self.headImage.layer.masksToBounds = YES; // nhưng khung hình sai; nó hiển thị CGRect (0, 0, 1000, 1000) trong xib chiều cao và chiều rộng của nó là 62 và 62; – PiscesZjc

+1

Tôi có cùng một vấn đề sau khi cập nhật xcode 8. Kích hoạt thứ hai trên viewDidLayoutSubviews cung cấp các khung chính xác. –

Trả lời

7

tôi giải quyết vấn đề của tôi bằng cách gọi

myOwnView.layoutIfNeeded() 

trước khi nhận được myOwnView.frame

+0

Tác phẩm này, nhưng tôi không chắc chắn tại sao chính xác điều này là bắt buộc. Tôi sẽ giả định rằng việc bố trí vượt qua được thực hiện trước khi didLayoutSubviews gọi lại. – Legoless

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