2012-02-22 42 views
9

Có bất kỳ kiểm soát hộp kiểm nào trong thư viện đối tượng cho các ứng dụng iOS không? Điều gần nhất tôi thấy là điều khiển chuyển đổi, có thể có giá trị boolean.Kiểm soát hộp kiểm cho ứng dụng iOS

+0

UISegmentedControl có thể giúp bạn – 0xDE4E15B

+1

Sử dụng trạng thái UIButton cho dấu chọn/bỏ chọn. Đặt hình ảnh bỏ chọn (trạng thái bình thường) và kiểm tra (trạng thái đã chọn). – Hirak

+0

Không có điều khiển giao diện người dùng mặc định cho hộp kiểm hoặc nút radio, ở đây bạn phải sử dụng 2 hình ảnh khác nhau để kiểm tra và bỏ chọn và kiểm soát chúng một cách hợp lý – kulss

Trả lời

36

Bạn có thể sử dụng nhà nước được lựa chọn của một UIButton, thiết lập hình ảnh khác nhau (hay còn văn bản) cho differents (thông qua mã, hoặc Interface Builder):

[button setImage:[UIImage imageNamed:@"selected.png"] 
     forState:UIControlStateSelected]; 
[button setImage:[UIImage imageNamed:@"unselected.png"] 
     forState:UIControlStateNormal]; 

Và trong các liên lạc lên hành động bên trong:

- (IBAction)buttonTouched:(id)sender 
{ 
    button.selected = !button.selected; 
    // add other logic 
} 
+0

Rất hữu ích cho tôi. Cảm ơn ..... – Vaquita

+0

Đây là thư viện nguồn mở cung cấp triển khai cho nó. https://github.com/t4ku/RadioButtonWithUIKit –

+0

Không hoạt động. Bạn phải thực hiện UIImageView. –

1

Đây là mã tôi sử dụng cho hai hộp kiểm trên màn hình. (Tôi đặt chúng ở dưới cùng của hai hình ảnh cũng trên màn hình. Tôi sử dụng UIControlEventTouchDown để gọi phương thức checkBoxTapped. Phương pháp này nói với bộ điều khiển xem chính của tôi, nơi tôi quyết định câu trả lời là chính xác hay không chính xác. điều khiển cuộc gọi trở lại quan điểm này và nói với nó để thay đổi textbox trống hoặc là một tấm séc:

enter image description here

hoặc x

enter image description here

// Put the Checkboxes on the screen 
UIImage *checkBox = [UIImage imageNamed:@"Checkbox"]; 

self.checkBoxLeft = [UIButton buttonWithType:UIButtonTypeCustom]; 
[self.checkBoxLeft setImage:checkBox forState:UIControlStateNormal]; 
[self.checkBoxLeft setFrame:checkBoxFrameLeft]; 
[self.checkBoxLeft addTarget:self 
         action:@selector(checkBoxTapped:) 
      forControlEvents:UIControlEventTouchDown]; 

[self.checkBoxLeft setTitle:@"checkBoxLeft" forState:UIControlStateNormal]; 
self.checkBoxLeft.contentEdgeInsets = insets; 
self.checkBoxLeft.showsTouchWhenHighlighted = NO; // Keeps it from turning gray 

self.checkBoxRight = [UIButton buttonWithType:UIButtonTypeCustom]; 
[self.checkBoxRight setImage:checkBox forState:UIControlStateNormal]; 
[self.checkBoxRight setFrame:checkBoxFrameRight]; 
[self.checkBoxRight addTarget:self 
         action:@selector(checkBoxTapped:) 
      forControlEvents:UIControlEventTouchDown]; 

[self.checkBoxRight setTitle:@"checkBoxRight" forState:UIControlStateNormal]; 
self.checkBoxRight.contentEdgeInsets = insets; 
self.checkBoxRight.showsTouchWhenHighlighted = NO; // Keeps it from turning gray 

- (void)checkBoxTapped:(UIButton *)buttonPressed { 
    [[self delegate] checkBoxTapped:buttonPressed.currentTitle]; 
} 

- (void)highlightCheckbox:(NSString *)checkboxToHighlight withHighlight:(NSString *)highlight { 

    if ([checkboxToHighlight isEqualToString:@"left"]){ 
     [self.checkBoxLeft setImage:[UIImage imageNamed:highlight] forState:UIControlStateNormal]; 
    } else { 
     [self.checkBoxRight setImage:[UIImage imageNamed:highlight] forState:UIControlStateNormal]; 
    } 
} 
0

// xác định sở hữu nút

của Tuyên bố hình ảnh không được kiểm soát

- (void)viewDidLoad 
{ 
    [_checkboxButton setBackgroundImage:[UIImage imageNamed:@"unchecked.png"] forState:UIControlStateNormal]; 
} 

Kiểm tra hình ảnh.

- (IBAction)buttonTapped:(id)sender 
{ 
    if (_checkboxButton.selected == YES) 
    { 
     [_checkboxButton setBackgroundImage:[UIImage imageNamed:@"unchecked.png"] forState:UIControlStateSelected]; 
     _checkboxButton.selected = NO; 
    } 
    else 
    { 
     [_checkboxButton setBackgroundImage:[UIImage imageNamed:@"checked.png"] forState:UIControlStateNormal]; 
     _checkboxButton.selected = YES; 
    } 
} 
Các vấn đề liên quan