2015-04-06 13 views
15

Vấn đề này làm tôi bối rối nghiêm trọng. Tôi có một UIView nhỏ tôi đang sử dụng để hiển thị nút nào được chọn. Tuy nhiên, nó không hiển thị trong ứng dụng của tôi - nó phải là dưới "Các hoạt động địa phương", nhưng không hiển thị:Xem hiển thị trong Debug View Hierarchy, nhưng KHÔNG trên thiết bị/sim

Image

Đó là tốt, tôi nghĩ, tôi sẽ chỉ gỡ lỗi hệ thống phân cấp xem và xem nó ở đâu! Và có vẻ như nó là chính xác nơi nó nên là:

View Hierarchy 3D View — it's on top of everything!

Có ai biết những gì có thể xảy ra ở đây? Cảm ơn đã giúp đỡ!

+0

Chính xác những gì bạn mong đợi sẽ thấy trên thiết bị của mình? –

+0

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

+0

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. –

Trả lời

6

Tôi ngu ngốc - tôi đã sửa nó. Tôi không chắc chắn lý do tại sao nó xuất hiện như trên đầu trang trong trình gỡ lỗi xem, nhưng nó đã được đằng sau một UIView.

+2

Tôi đã có điều này xảy ra và tôi đã sử dụng lại mã trong một quá trình chuyển đổi đã đặt chế độ xem alpha của tôi thành 0 lol. – NSGangster

+0

Tôi có cùng một vấn đề. Đã thử tất cả mọi thứ ..Giống như tạo alpha 1, thuộc tính ẩn được đặt thành false, hiển thị trước tất cả các chế độ xem khác theo [[UIApplication sharedApplication] .keyWindow bringSubviewToFront: yourSubview]. Xin vui lòng đề nghị tôi một số giải pháp khác nếu có ai tìm thấy nó. – NSP

+0

@KyleBashour: Bạn đã tìm ra điều đó như thế nào? – moonman239

4

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.

+0

Điều EXACT này đã xảy ra với tôi – danielmhanover

+1

Điều này cũng xảy ra với tôi. Các giải pháp mà làm việc cho tôi đã subclassing các quan điểm và làm những điều góc tròn trong 'layoutSubviews()' như được thảo luận ở đây: https://stackoverflow.com/a/27293815/1245293 – Knolraap

2

Tôi đã gặp vấn đề tương tự trong Xcode 9. Nguyên nhân của tôi là tôi đã đặt alpha của chế độ xem thành 0 trong viewDidLoad, nhưng không đặt alpha trở lại thành 1.0. Vì lý do nào đó, Phân cấp Chế độ xem gỡ lỗi đã hiển thị nó với alpha là 1.0 ...

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