[英]Checkbox in tableview section header
如何在tableview部分標題中實現復選框。 我的代碼是
-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
UIView *tempView=[[UIView alloc]initWithFrame:CGRectMake(0,200,300,244)];
tempView.backgroundColor=[UIColor clearColor];
UIButton *leftSecCheckBtn = [UIButton buttonWithType:UIButtonTypeCustom];
[leftSecCheckBtn setBackgroundImage:[UIImage imageNamed:@"checkbox_empty.png"] forState:UIControlStateNormal];
[leftSecCheckBtn setBackgroundImage:[UIImage imageNamed:@"checkmark_Tick.png"] forState:UIControlStateSelected];
[leftSecCheckBtn setFrame:CGRectMake(22,-2, 26, 26)];
[leftSecCheckBtn addTarget:self
action:@selector(leftSectionCheckBox:)
forControlEvents:UIControlEventTouchUpInside];
[tempView addSubview:leftSecCheckBtn];
}
-(void)leftSectionCheckBox:(id)sender
{
UIButton *selectedButton = (UIButton *) sender;
{
if([selectedButton isSelected ]==YES)
{
[selectedButton setSelected:NO];
}
else
{
[selectedButton setSelected:YES];
}
}
}
在ViewForHeader函數中添加了按鈕,但是,按鈕的圖像沒有改變,
我認為這可以幫助:
-(void)leftSectionCheckBox:(UIButton *)sender {
sender.selected = !sender.isSelected;
if([selectedButton isSelected ]==YES) [selectedButton setSelected:NO];
else [selectedButton setSelected:YES];
}
或者您可以這樣做:
-(void)leftSectionCheckBox:(id)sender {
for (UIButton * selectedButton in [[tableView headerViewForSection:0]subviews]) {
if ([selectedButton isKindOfClass:[UIButton class]]) {
if([selectedButton isSelected ]==YES) [selectedButton setSelected:NO];
else [selectedButton setSelected:YES];
}
}}
嘗試這個
-(void)leftSectionCheckBox:(id)sender
{
UIButton *selectedButton = (UIButton *) sender;
if([selectedButton isSelected ]==YES)
{
[selectedButton setSelected:NO];
[leftSecCheckBtn setBackgroundImage:[UIImage imageNamed:@"checkbox_empty.png"] forState:UIControlStateNormal];
}
else
{
[selectedButton setSelected:YES];
[leftSecCheckBtn setBackgroundImage:[UIImage imageNamed:@"checkmark_Tick.png"] forState:UIControlStateNormal];
}
}
我更新了答案之一。 否則,您必須通過界面生成器來完成。
將您的tempView
用戶交互設置為啟用,
[tempView setUserInteractionEnabled:YES];
您可以最小化您的方法,例如
-(void)leftSectionCheckBox:(UIButton *)selectedButton
{
selectedButton.selected = !selectedButton.selected;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.