2009-10-17 30 views
27

Có thể đặt Alpha thành 0,75 hoặc .50 (trong suốt) cho chế độ xem Gốc nhưng chế độ xem/điều khiển con không rõ ràng (kênh Alpha 1.0 - hiển thị hoàn toàn).Lập trình iPhone: Áp dụng Alpha cho phụ huynh nhưng không cho trẻ em xem

Bất cứ khi nào tôi đặt Alpha của UIView chính thành minh bạch, tất cả các chế độ xem/điều khiển con cũng được hiển thị là minh bạch. Có bất kỳ công việc xung quanh?

Trả lời

28

Phụ huynh đóng vai trò nền của bạn nên được thay đổi thành anh chị em trước khi vật chứa bao bọc trẻ em của bạn. Bằng cách đó bạn có thể thiết lập độ trong suốt mà không ảnh hưởng đến toàn bộ hệ thống phân cấp.

Điều này sẽ trông như thế này.

  • <item-container>
    • <item-background>
    • <children-container>
      • <children/>

Cấu trúc phân cấp này, sẽ có cùng thứ tự hiển thị và cho phép bạn đặt độ mờ một cách độc lập với nội dung của vùng chứa con.

+0

Cảm ơn, sẽ kiểm tra nó ra. – Mustafa

+0

Nó làm việc cho tôi :). Cảm ơn. – Mustafa

2

Không chắc chắn 100% những gì bạn đang cố gắng làm, nhưng nếu bạn muốn có chế độ xem vùng chứa với nền trong suốt, bạn có thể làm như vậy bằng cách đặt thuộc tính backgroundColor thành [UIColor clearColor]. Bằng cách đó, bạn có thể nhìn xuyên qua nền, nhưng tất cả các phần phụ sẽ vẫn mờ đục. Nếu bạn muốn nền trong suốt chỉ cần sử dụng [UIColor colorWithRed: green: blue: alpha:].

Nếu bạn muốn toàn bộ chế độ xem nửa công khai trong khi các chế độ xem khác không phải bạn sẽ phải làm cho anh chị em.

3

Tôi biết đây là câu trả lời trễ và đã được chấp nhận, nhưng tôi đã tìm ra giải pháp tốt nhất cho tôi là không đặt độ trong suốt của UIView trực tiếp, mà thay vào đó đặt màu nền là 0,0,0 , 0, làm cho màu sắc hoàn toàn trong suốt.

+2

Chỉ cần rõ ràng (chơi chữ đầy đủ), bạn làm điều này bằng cách sử dụng mã sau đây trên màn hình cha mẹ: [myUIView setBackgroundColor: [UIColor clearColor]]; – DEzra

64

Một cách đơn giản hơn cũng có thể thực hiện mà không cần phải thực hiện các anh chị em trong chế độ xem. Không đặt alpha trực tiếp trên chế độ xem gốc. Thay vào đó, hãy sử dụng

[parentView setBackgroundColor:[[UIColor clearColor] colorWithAlphaComponent:0.5]]; 

Hiện tại, mọi chế độ xem con đều có màu riêng và KHÔNG được trong suốt.

Trong Swift, đây sẽ là

parentView.backgroundColor = UIColor.clearColor().colorWithAlphaComponent(0.7) 
+0

Làm việc một điều trị; chính xác những gì tôi cần. Cảm ơn bạn!! –

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