2016-02-22 24 views
5

tôi có mã này làm thay đổi sự xuất hiện của UILabel s khi chúng xuất hiện trong UIAlertController s:UIAppearance cho UILabel trong UIActivityViewController

UILabel *appearanceLabel = [UILabel appearanceWhenContainedInInstancesOfClasses:@[[UIAlertController class]]]; 
    [appearanceLabel setAppearanceFont:kFontRegular(18)]; 

Nhưng điều này cũng ảnh hưởng đến UILabels xuất hiện trong UIActivityViewController s.

enter image description here

Làm thế nào tôi có thể loại trừ các UILabels trong UIActivityViewController?

Trả lời

5

Thay vì cố gắng để thiết lập/unset sự xuất hiện tùy thuộc vào tình hình của bạn, bạn có thể phân lớp UIAlertController của riêng bạn và sử dụng

UILabel *appearanceLabel = [UILabel appearanceWhenContainedInInstancesOfClasses:@[[MyAlertController class]]]; 
    [appearanceLabel setAppearanceFont:kFontRegular(18)]; 

sau đó khi tờ hành động mở ra nó sẽ không có lớp con của bạn để quy tắc sẽ không áp dụng.

+0

này có lẽ sẽ làm việc - nhưng tôi có khá một ứng dụng lớn có sử dụng UIAlertController khá rộng rãi. – Halpo

+0

Nó sẽ không hoạt động như tình hình vẫn giống như UIActivityViewController đang sử dụng cùng một giao diện – techloverr

+0

techloverr Tôi vừa thử nghiệm ý tưởng sử dụng một lớp con và nó sẽ chỉ điều chỉnh phông chữ cho lớp con. Điều đó có nghĩa là nó sẽ hoạt động. – Steve

0

Bạn có thể sử dụng tính năng đặt ra lớp của objective c để sử dụng trong bao nhiêu là lần xuất hiện của UIAlertController

Class Posing

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