Tôi không có một tấn thông tin về lý do tại sao điều này xảy ra, nhưng phải mất vài giờ để tìm thấy những gì đã gây ra điều này đối với tôi như vậy có lẽ điều này sẽ giúp tiết kiệm một ai đó một thời gian:
Tôi lập trình tạo ra hai subviews (Subview A và Subview B) bên trong bộ điều khiển khung nhìn; không xuất hiện trên thiết bị của tôi mặc dù kích thước và vị trí của khung, giá trị alpha và tất cả các vấn đề hiển thị thông thường khác đều được kiểm tra. Subview A là một subview của view controller, và Subview B là subview của Subview A. Không hiển thị trên thiết bị của tôi, nhưng khi tôi nhìn vào View Debugger Hierarchy, tôi có thể thấy Subview B (mặc dù giám sát của nó, Subview A, không hiển thị).
Câu chuyện dài ngắn, sự cố đã được khắc phục khi tôi xóa mã đã thay đổi thuộc tính mặt nạ của lớp con của Lớp phủ. Dưới đây là phương pháp chính xác mà đã được gọi là trên lớp:
extension CALayer {
func round(corners: UIRectCorner, withRadius radius: CGFloat, withBounds: CGRect? = nil) {
let path = UIBezierPath(roundedRect: withBounds ?? bounds, byRoundingCorners: corners, cornerRadii: CGSize(width: radius, height: radius))
let mask = CAShapeLayer()
mask.path = path.cgPath
self.mask = mask
}
}
Tôi đã sử dụng phương pháp này trong quá khứ với không có vấn đề vì vậy tôi chắc chắn rằng vấn đề là hơi gián tiếp nhưng có lẽ điều này sẽ chỉ một ai đó ở bên phải hướng trong tương lai.
EDIT:
Vấn đề không chỉ là mã được hiển thị ở trên mà thực tế là tôi đã thay đổi khung của Subview A sau khi gọi vòng(). Một khi tôi đã chắc chắn để chỉ vòng() Subview A sau khi nó đã được đưa ra vị trí cuối cùng và kích thước của nó, tất cả các vấn đề với cả hai thiết bị và trình gỡ lỗi đã được giải quyết.
Chính xác những gì bạn mong đợi sẽ thấy trên thiết bị của mình? –
Whats màu nền của nút của bạn, có thể là nút của bạn ghi đè chế độ xem bạn muốn hiển thị như đã chọn. Và cũng mô tả cách bạn đang làm nổi bật UIView. – Samir
Nền là UIColor.clearColor(), và thật khó để nói từ ảnh chụp màn hình của tôi, nhưng trong chế độ xem 3D, nó chắc chắn nằm trên đầu của Nút Hoạt động. Mike - Tôi hy vọng sẽ thấy dòng màu trắng bên dưới nút hoạt động mà bạn có thể thấy trong cấu trúc phân cấp xem lỗi, nhưng không thấy trên ứng dụng đang chạy. –