drawRect :를 사용하여 사용자 지정 단추를 만든 다음 내 tableview에 대한 내 headerview에 넣습니다. 편집 모드를 선택하면 사용자 지정 단추를 숨기고 싶습니다.편집 모드를 사용하는 경우 맞춤 검색 버튼을 숨기는 방법은 무엇입니까?
-(void)setEditing:(BOOL)editing animated:(BOOL)animated
을하지만이 중 1) 2) 또는 button.hidden 속성을 사용, 전무로 설정하면 어떤 이유로, 내 버튼을 실제로 dissapearing되지 않은 : 나는 그 방법을 사용하여 수행 할 수 있습니다 알고 있습니다.
이 TableViewController.h:
-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{
UIView *headerView;
UIView *seperatorView;
CGRect testFrame = CGRectMake(280.0, 5.0, 30.0, 30.0);
button = [[addButtonView alloc]initWithFrame:testFrame];
NSString *sectionTitle = @"Incomplete Tasks";
NSString *section2Title = @"Completed Tasks";
UILabel *label = [[UILabel alloc]init];
label.textColor = [UIColor colorWithRed:236.0/255 green:240.0/255 blue:241.0/255 alpha:1.0f];
label.font = [UIFont fontWithName:@"HelveticaNeue-Light" size:25];
label.backgroundColor = [UIColor clearColor];
label.frame = CGRectMake(10.0, 0.0, 320.0, 40.0);
headerView = [[UIView alloc]initWithFrame:label.frame];
[button addTarget:self action:@selector(addCell:) forControlEvents:UIControlEventTouchUpInside];
[button addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside];
CGRect sepFrame = CGRectMake(0, headerView.frame.size.height-2, 320, 1);
seperatorView = [[UIView alloc] initWithFrame:sepFrame];
seperatorView.backgroundColor = [UIColor colorWithRed:236.0/255 green:240.0/255 blue:241.0/255 alpha:1.0f];
[headerView addSubview:seperatorView];
switch (section) {
case 0:
label.text = sectionTitle;
[headerView addSubview:label];
[headerView addSubview:button];
break;
case 1:
label.text = section2Title;
[headerView addSubview:label];
// if (completedArray == nil)
// headerView.hidden = YES;
break;
}
return headerView;
}
-(void)setEditing:(BOOL)editing animated:(BOOL)animated{
[super setEditing:editing animated:animated];
if([self isEditing]){
button.hidden = YES;
}else {
button.hidden = NO;
}
}
은 --- 편집 테이블 뷰가
-(void)setEditing:(BOOL)editing animated:(BOOL)animated{
[super setEditing:editing animated:animated];
if([self isEditing]){
button.hidden = YES;
[[self tableView] reloadData]; //shouldn't this make the button dissapear?
}else {
button.hidden = NO;
}
}
은 내가 변경 것과 주요 포스트 업데이트 (당신은 쉽게 다른 배열에있는 버튼을 저장할 수). 피드백을 기반으로 을 입력하십시오. 왜이 기능이 작동하지 않습니까? 나는 버튼을 숨기고 그 버튼을 숨길 수 있도록 뷰를 다시로드하고있다. – EvilAegis
작동하려면'viewForHeaderInSection'을 변경해야합니다. 'viewForHeaderInSection'에있는 버튼을 항상 재 작성한다면, 이전 버튼을 숨김으로 설정하는 것은 항상 손실됩니다. 'setEditing :'을 변경해도 문제가 해결되지 않습니다. – Wain
헤더를 한 번 만들고 앞에서 말한 것과 같은 인스턴스를 반환하는 방법은 무엇입니까? (내 현재 viewForHeaderInSection을 기반으로 – EvilAegis