2012-05-24 40 views
10

Vì vậy, tôi có mã sau để thiết lập màu nền kiểm soát phân đoạn:thiết lập của UISegmentedControl

UISegmentedControl * segmentedCtrl = [[UISegmentedControl alloc] initWithFrame:CGRectMake(0, 0, 150, 35)]; 
[segmentedCtrl setBackgroundImage:[UIImage imageNamed:@"btn-gradient-brown"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; 
[segmentedCtrl setBackgroundImage:[UIImage imageNamed:@"btn-gradient-brown"] forState:UIControlStateSelected barMetrics:UIBarMetricsDefault]; 
[segmentedCtrl insertSegmentWithImage:[UIImage imageNamed:@"icon-home.png"] atIndex:0 animated:NO]; 
[segmentedCtrl insertSegmentWithImage:[UIImage imageNamed:@"icon-star.png"] atIndex:1 animated:NO]; 

Tất cả đều hoạt động tốt ngoại trừ việc khi tôi bấm vào phân khúc tôi có thể thấy nút đánh dấu màu xanh. Làm cách nào để tắt tính năng đánh dấu này? Dưới đây là một ảnh chụp màn hình của vấn đề của tôi:

enter image description here

Trả lời

14

UISegmentControl có một phân giữa hai đoạn. Bằng cách sử dụng mã sau, bạn có thể thay đổi nền chia.

[segmentedCtrl setDividerImage:[UIImage imageNamed:@"divider_selected.png"] forLeftSegmentState:UIControlStateSelected rightSegmentState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; 
[segmentedCtrl setDividerImage:[UIImage imageNamed:@"divider_normal.png"] forLeftSegmentState:UIControlStateNormal rightSegmentState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; 

Trường hợp divider_selected.png là hình ảnh bạn đã sử dụng cho trạng thái đã chọn. Trong trường hợp như divider_normal.png là một hình ảnh mà bạn đã sử dụng cho trạng thái bình thường.

Hy vọng điều này sẽ giúp ....

+0

những gì sẽ là kích thước của hình ảnh chia ?? – Nil

+0

Tôi đã có 5 × 56. Trong chiều cao này có thể thay đổi theo chiều cao kiểm soát phân đoạn của bạn. – Nandha

+0

Tôi đang làm điều đó, nhưng khung của segmentedCtrl của tôi được mở rộng thêm 5 pixel! Tôi đang làm gì sai? Có bất kỳ yêu cầu * nào * cho hình ảnh dải phân cách (như trong suốt, vv) không? – Gik

2

Đặt ảnh nền cùng của bạn cho nhà nước nhấn mạnh:

[segmentedCtrl setBackgroundImage:[UIImage imageNamed:@"btn-gradient-brown"] forState:UIControlStateHighlighted barMetrics:UIBarMetricsDefault]; 
+4

đã này .. đã không làm việc – adit

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