Có cách nào để loại bỏ các góc tròn của UISegmentedControl hoặc đó là hành vi mặc định?UISegmentedControl không có góc tròn?
Trả lời
Không, không có API nào cho phép bạn kiểm soát bố cục của các phân đoạn.
Có thể bạn có thể thử nhìn vào chế độ xem của UISegmentedControl và cố gắng thay đổi chúng theo nhu cầu của bạn. Nhưng từ kinh nghiệm cá nhân tôi sẽ không khuyên điều đó. Nếu Apple thay đổi thứ tự của họ trong tương lai, ứng dụng của bạn có thể sẽ bị lỗi. Điều dễ nhất cần làm là tạo UIButtons tùy chỉnh hoạt động như các nút chuyển đổi và kiểm soát chúng như một UISegmentedControls (đối với các nút chuyển đổi, xem How to use a UIButton as a toggle switch).
Nếu bạn muốn có giao diện khác, bạn chỉ có thể phân lớp và vẽ bản vẽ của riêng mình trong -drawRect:
. Xem Quartz 2D Programming Guide để tham khảo khi vẽ bằng Đồ họa Thạch anh/Lõi.
Có điều gì đó thực sự dễ dàng mà bạn có thể làm gì để thoát khỏi thân mình của rác tròn trên UISegmentedControl ... thay đổi phong cách để "7". Mình không giỡn đâu. Tôi chỉ tìm ra này:
// Magic number ... (it's cheating, but it works)
mySegmentedBar.segmentedControlStyle = 7;
Đây là cùng một phong cách kiểm soát họ sử dụng trong thanh phạm vi của UISearchBar, như thế này:
Nhưng nếu ai đó chỉ muốn thanh phạm vi, nếu không có sự tìm kiếm, chúng thường bị mắc kẹt với UISegmentedControl rác như thế này (với góc tròn):
Hoặc tệ hơn, điều này ...
Rất may, bằng cách chuyển sang bar phong cách "7", chúng tôi nhận được cái nhìn chính xác của thanh dừng lại, không có tất cả các subclassing và drawRect hackery:
Sau rất nhiều cố gắng tôi dưới đây giải pháp mà làm việc tốt mà không có bất kỳ hình ảnh nền hoặc subclassing:
mySegmentedControl.tintColor = [UIColor clearColor]; //Clear all border
//Draw your own border
mySegmentedControl.layer.borderColor = [UIColor blackColor].CGColor;
mySegmentedControl.layer.borderWidth = 1.0;
//Set tint color for selected subview
UIColor *tintcolor=[UIColor redColor];
int subViewIndex = 0; //index which is selected
[[_segmentControl.subviews objectAtIndex:subViewIndex] setTintColor:tintcolor];
Bằng cách thêm đường viền có chiều rộng hợp lý, bạn có thể lấy diện mạo bình phương:
self.segmentedControl.tintColor = [UIColor brownColor];
self.segmentedControl.layer.cornerRadius = 0.0;
self.segmentedControl.layer.borderColor = [UIColor brownColor].CGColor;
self.segmentedControl.layer.backgroundColor = [UIColor colorWithWhite:1 alpha:0.75].CGColor;
self.segmentedControl.layer.borderWidth = 1.5f;
self.segmentedControl.layer.masksToBounds = YES;
- 1. Lỗi góc tròn Java
- 2. CSS Góc tròn
- 3. cắt góc tròn
- 4. Góc tròn trên UIView
- 5. Tạo nút có góc tròn trong android
- 6. SVG tròn góc
- 7. CSS Tròn góc Divs
- 8. svg css góc tròn không hoạt động
- 9. Góc tròn của trình duyệt chéo (không có hình ảnh)
- 10. Góc bàn tròn mà không có hình nền?
- 11. Góc tròn UIView hoặc UIImageView
- 12. UIToolbar với các góc tròn
- 13. Góc tròn lỏng với jQuery
- 14. Bàn góc tròn với LESS
- 15. Tròn góc TextBox trong WPF
- 16. Chỉ cần hai góc tròn?
- 17. NSImageView góc tròn + nét ngang
- 18. WPF MediaElement với góc tròn
- 19. Góc tròn chỉ trên một số góc trong css
- 20. Cách sử dụng nhãn góc tròn trong iphone, Góc tròn UILabel
- 21. NSButton có chiều rộng kích thước thay đổi, góc tròn
- 22. UISegmentedControl có số hiệu
- 23. iOS UITableViewCell cell.imageView thiết lập góc tròn
- 24. Bàn cá nhân iPhone Bàn tròn góc
- 25. Hình ảnh đầy đủ, các góc tròn
- 26. Raphael-JS: Xoay với một góc tròn
- 27. Góc tròn iOS UIImage với đường viền
- 28. Góc làm tròn các nút trong kivy
- 29. khách quan c - UINavigationBar với góc tròn
- 30. Đặt góc tròn cho svg: hình ảnh
Nó giống như ma thuật. – Joel
Đây có phải là API riêng tư không? – jjxtra
@GregCombs nó được một lúc, muốn một câu trả lời về điều này^xin vui lòng, bất cứ khi nào bạn có thời gian – GangstaGraham