Khung công tác Cocoa sử dụng cách tiếp cận mà mẫu Thành phần đối tượng phù hợp hơn so với phân cấp lớp truyền thống.
Nói chung, điều này có nghĩa là có khả năng là thuộc tính trên UIButton nơi bạn có thể đặt một đối tượng khác để xử lý các khía cạnh khác nhau của nút. Đây là cách ưa thích để "tùy chỉnh" cách nút của bạn hoạt động.
Một trong những lý do chính cho mẫu này là nhiều thành phần thư viện tạo nút và không biết rằng bạn muốn chúng tạo các phiên bản của lớp con của bạn.
chỉnh sửa, phương pháp nhà máy của riêng bạn
tôi nhận thấy bình luận của bạn ở trên về tiết kiệm thời gian khi bạn có nút cấu hình giống nhau trên nhiều nút trong ứng dụng của bạn. Đây là thời điểm tuyệt vời để sử dụng mẫu thiết kế Phương thức Nhà máy và trong Mục tiêu-C, bạn có thể implement it with a Category để nó có sẵn trực tiếp trên UIButton.
@interface UIButton (MyCompanyFactory)
+(UIButton *) buttonWithMyCompanyStyles;
@end
@implementation UIButton
+(UIButton *) buttonWithMyCompanyStyles {
UIButton *theButton = [UIButton buttonWithType:UIButtonTypeCustom];
// [theButton set...
return theButton;
}
@end
Nguồn
2012-11-02 20:01:35
Lý do của bạn để phân lớp UIButton là gì? Chỉ định loại nút 'tùy chỉnh'. Điều gì khác là cần thiết? –
Tôi đã hỏi nhiều hơn chỉ khi tôi muốn phân lớp trong tương lai, tại sao tôi không nên làm điều đó. Nhưng ngay bây giờ tôi sẽ có khoảng 20 nút trong ứng dụng của tôi có cùng một nền, phông chữ, kích thước padding xung quanh văn bản, vv Vì vậy, tôi muốn cùng một số thời gian và mã bằng cách phân lớp. – KKendall
Không có lý do gì bạn không thể phân lớp UIButton. Trong thực tế, tôi làm điều đó để tôi có thể sử dụng IB để xác định giao diện của nút của tôi. Tại sao? Thiết kế linh hoạt. Nhiều người có UIButton được phân lớp. Tôi đã phân lớp UIButton. Niềm tin này rằng nó không thể là một cái gì đó mà được lặp đi lặp lại nhưng thiếu bằng chứng. –