Bí quyết có vẻ là để kích thước UISegmentedControl với kích thước của backgroundView
của điều khiển, không phải là contentView
. Tôi đã có thể làm điều đó theo chương trình bằng cách thực hiện những điều sau đây:
// Size to cover the entire background
self.contentView.frame = self.backgroundView.frame;
self.myControl.frame = self.contentView.bounds;
Lưu ý rằng nếu bạn đang sử dụng một phụ kiện, bạn cần vào tài khoản cho accessoryView
là tốt.
Nguyên nhân là do hệ thống phân cấp xem là như sau:
self
(các UITableViewCell hay subclass)
backgroundView
contentView
- (điều khiển của bạn đi ở đây)
accessoryView
Trong bố trí chân dung, các backgroundView
'khung s là {{9, 0}, {302, 44}}
, trong khi contentView
' khung s là hơi nhỏ hơn, ít {{10, 1}, {300, 42}}
. Điều này cung cấp cho các tế bào của nó 1px "biên giới" khi phong cách bảng được nhóm lại. Bạn phải thay đổi kích thước cả hai điều khiển của contentView
và để có được kích thước phù hợp.
(Chú ý:. Trong khi Apple thực sự có một số ví dụ về một UISegmentedControl trong dự án mã UICatalog mẫu trong the SDK, họ một cách hiệu quả "ăn gian" bằng cách sử dụng một UIViewController và thiết lập màu nền giao diện chính để màu nền bảng)
Nguồn
2009-12-24 23:56:23
Một phong cách gợi ý nhỏ: sử dụng vốn đúng đắn của tên lớp trong tiêu đề câu hỏi sẽ giúp dễ đọc hơn nhiều. Bạn có thể thay đổi nó sau khi thực tế. Rất tiếc, tôi không có câu trả lời, tôi chỉ thực hiện các ứng dụng dành cho máy tính để bàn vào lúc này. –