2012-07-13 24 views
13

Tôi đang lang thang khi chính xác các quy tắc UIAppearance được áp dụng cho một số bộ điều khiển xem mới?Khi nào quy tắc proxy UIAppearance được áp dụng cho bộ điều khiển chế độ xem mới?

Tôi đã thực hiện một số quy tắc chung và tôi gọi chúng trong ủy quyền ứng dụng của mình. Bằng cách đó tất cả các UIButtons trông giống nhau. Nhưng bây giờ tôi muốn sửa đổi chỉ xuất hiện của một UIButton. Tôi đã thử đặt mã để loại bỏ nền của nó bên trong - (void)viewDidLoad nhưng nó không hoạt động - Các quy tắc UIAppearance chưa được áp dụng. Trong một ViewController tôi đặt mã sửa đổi bên trong - (void)viewWillLayoutSubviews và nó hoạt động hoàn hảo, nhưng bây giờ trong một ViewController khác nó không hoạt động (mã là như nhau).

Nơi nào an toàn để ghi đè quy tắc UIAppearance?

Trả lời

13

Theo video WWDC 2011 giới thiệu UIAppearance, các tùy chỉnh được áp dụng ngay trước khi -layoutSubviews được gọi trên chế độ xem.

1

Nếu bạn đang tìm kiếm để tùy chỉnh một nút cụ thể mà bạn nên một trong hai:

  1. Alter các thuộc tính của button instance trực tiếp, và không chạm vào các thiết lập xuất hiện cho lớp, hoặc

  2. sử dụng phương pháp appearanceWhenContainedIn: như dưới đây:

    [[UIButton appearanceWhenContainedIn:[CustomView class], nil] 
    setBackgroundImage:myButtonImage 
          forState:UIControlStateNormal]; 
    

Bằng cách đó, bạn vẫn có thể sử dụng proxy xuất hiện cho nút cụ thể của mình (khi bạn biết nó có trong một chế độ xem cụ thể) và không thay đổi cài đặt hiển thị chung.

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