Tôi có UISegmentedControl với hai phân đoạn (chỉ mục: 0 và 1) mà tôi đang cố gắng đặt lại theo chương trình thành 0. Khi tôi chạy lệnh bên dưới, nó không đặt lại chỉ mục phân đoạn thành 0 kỳ vọng. Thay vào đó, nó làm nổi bật phân đoạn được lập chỉ mục 1.Thay đổi UISegmentedControl chỉ số hoặc giá trị được chọn theo lập trình
[seg setSelectedSegmentIndex:0];
Rất tiếc khi tôi đăng nhập đoạn đã chọn, nó trả về 0
.
NSLog(@"seg setSelectedSegmentIndex %d", seg.selectedSegmentIndex);
Cũng kỳ quặc, sau khi chạy setSelectedSegmentIndex:0
tôi không thể chọn lại phân khúc 0 bằng tay bằng cảm ứng, nó có vẻ là bị khóa để phân đoạn 1, cho đến khi tôi gõ 1, trong đó nó hoạt động như bình thường.
Đây là thiết lập cho nút:
itemArray = [NSMutableArray arrayWithObjects: @"Zero", @"One", nil];
seg = [[UISegmentedControl alloc] initWithItems:itemArray];
[seg setFrame:segRect];
seg.segmentedControlStyle = UISegmentedControlStyleBar;
seg.momentary = NO;
[seg addTarget:self action:@selector(someAction:) forControlEvents: UIControlEventValueChanged];
[mainView addSubview:seg];
LƯU Ý: Để xác định lại những gì tôi đã cố gắng để hoàn thành với câu hỏi này: Tôi muốn thiết lập chỉ số được lựa chọn của UISegmentedControl qua một biến động, có phản hồi trực quan thích hợp và kiểm tra chỉ mục đã chọn trong một phương thức, để thực hiện điều gì đó xảy ra tùy thuộc vào chỉ mục đã chọn. Xem câu trả lời của tôi dưới đây cho một giải pháp.
đều các phân đoạn kích hoạt trước khi bạn cố gắng chọn? (sử dụng isEnabledForSegmentAtIndex) –
@calvinBhai Tôi nghĩ vậy, sẽ không được kích hoạt mặc định? – Mrwolfy
Tôi có cùng một vấn đề, phân khúc 0 không thể được chọn lại khi một trong số những người khác đã có. Tôi sẽ phát hành với một workaround của có một seg trống 0 cho bây giờ. Phân đoạn của tôi nằm bên trong UIControl bên trong UIScrollView. Tôi đã có vấn đề trước đây khi iOS 5 làm việc tốt, nhưng cùng một nhị phân trên iOS6 trưng bày vấn đề này. –