Tôi đang đặt giao diện điều khiển được phân đoạn qua các câu lệnh này trong ủy nhiệm ứng dụng.Hành vi lạ với UISegmentedControl và UIAppearance
[[UISegmentedControl appearance] setBackgroundImage:[[UIImage imageNamed:@"segmentation_normal.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0 , 0, 0)] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
[[UISegmentedControl appearance] setBackgroundImage:[[UIImage imageNamed:@"segmentation_selected.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0 , 0, 0)]
forState:UIControlStateSelected barMetrics:UIBarMetricsDefault];
[[UISegmentedControl appearance] setDividerImage:[UIImage imageNamed:@"segmentation_divider_NormalNormal.png"] forLeftSegmentState:UIControlStateNormal rightSegmentState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
[[UISegmentedControl appearance] setDividerImage:[UIImage imageNamed:@"segmentation_divider_NormalSelected.png"] forLeftSegmentState:UIControlStateNormal rightSegmentState:UIControlStateSelected barMetrics:UIBarMetricsDefault];
[[UISegmentedControl appearance] setDividerImage:[UIImage imageNamed:@"segmentation_divider_SelectedNormal.png"] forLeftSegmentState:UIControlStateSelected rightSegmentState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
Kết quả là tốt. Nền và ngăn được đặt chính xác khi tôi chọn bất kỳ phân đoạn nào (phân đoạn Đơn hàng được chọn theo Mặc định khi ứng dụng lần đầu tiên khởi chạy). Khi tôi chọn phân đoạn Phát hành như bạn có thể thấy bên dưới, mọi thứ đều ổn.
Vấn đề là khi tôi đi ra khỏi quan điểm sau đó quay trở lại xem (tôi lưu trữ các chỉ số được lựa chọn và đặt nó trong viewDidLoad để chọn lại phân khúc), chia được đặt không đúng đối với một số chưa biết lý do.
Nếu tôi gõ vào A-Z rồi Phát hành, nó sửa chữa chính nó. Lỗi này chỉ xảy ra khi lượt xem đầu tiên tải và phân đoạn đã chọn là Bản phát hành hoặc A-Z. Bộ chia luôn luôn ổn khi Order được chọn và khung nhìn tải.
Kích thước hình ảnh: dải phân cách rộng 2px (tất cả 3 hình có cùng kích thước), hình nền rộng 2 px.
Bất kỳ ý tưởng hoặc con trỏ nào sẽ được đánh giá cao, tôi đã kéo tóc của tôi trong 10 giờ qua cố gắng tìm một giải pháp không có sẵn.
Gọi phương thức 'setNeedsDisplay' của' UISegmentedControl' sau khi bạn đặt chỉ mục đã chọn của 'UISegmentedControl' trong' viewDidLoad'. Có lẽ điều đó sẽ khắc phục được vấn đề. –
Không hoạt động. Cảm ơn mặc dù! –
Tôi cũng gặp sự cố này. Damn: ( – runmad