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
Trả lời
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
}
Rất hữu ích cho tôi. Cảm ơn ..... – Vaquita
Đây là thư viện nguồn mở cung cấp triển khai cho nó. https://github.com/t4ku/RadioButtonWithUIKit –
Không hoạt động. Bạn phải thực hiện UIImageView. –
Đâ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:
hoặc x
// 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];
}
}
// 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;
}
}
UISegmentedControl có thể giúp bạn – 0xDE4E15B
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
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