내가 눌렀을 때 셀을 강조 표시하고 강조 표시를 해제하기 위해 내 tableView의 오른쪽 구석에 UIBarButtonItem을 만들려고합니다.UITableViewCell을 얻는 방법은 UIBarButtonItem을 탭하여 배경색을 변경 하시겠습니까?
사용자가 버튼을 누르면 셀 범위가 흰색에서 노란색으로 바뀝니다.
나는 그 버튼을 누를 때마다 앱이 다운되기 때문에 그렇게하지 못하고있다.
- (void)viewDidLoad {
[super viewDidLoad];
UIBarButtonItem *barButton;
barButton = [[[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"high.png"] style:UIBarButtonItemStyleBordered target:self action:@selector(colorCells:)] autorelease];
self.navigationItem.rightBarButtonItem = barButton;
}
그리고 여기 셀 범위 강조하기 위해 :
- (void) colorCells:(id)sender
{
UITableViewCell *cell;
NSString *cellValue = cell.textLabel.text;
if ([cellValue isEqual: @"textTheCellShouldBeEqualTo"]){
cell.backgroundColor = [UIColor colorWithRed:251/255.0f green:255/255.0f blue:192/255.0f alpha:1]; ;
cell.imageView.image = [UIImage imageNamed:@"hot.png"];
}
else {
cell.imageView.image = nil;
cell.backgroundColor = [UIColor whiteColor];
}
}
내가 실패 오전
여기에 내가 버튼을 만들기 위해 사용하고 코드인가? 그것은 잘 작동해야합니다. 또는? 내가 놓친 게 있니? 뷰는 UITableViewController입니다. 지금은 충돌하지 않는
- (void) colorCells:(id)sender{
UITableViewCell *cell;
NSInteger nSections = [self.tableView numberOfSections];
for (int j=0; j<nSections; j++) {
NSInteger nRows = [self.tableView numberOfRowsInSection:j];
for (int i=0; i<nRows; i++) {
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:i inSection:j];
cell = [self.tableView cellForRowAtIndexPath:indexPath];
}
NSString *cellValue = cell.textLabel.text;
if ([cellValue isEqual: @"textTheCellShouldBeEqualTo"]){
cell.backgroundColor = [UIColor colorWithRed:251/255.0f green:255/255.0f blue:192/255.0f alpha:1]; ;
cell.imageView.image = [UIImage imageNamed:@"hot.png"];
}
else {
cell.imageView.image = nil;
cell.backgroundColor = [UIColor whiteColor];
}
[self.tableView reloadData];
}
}
을,하지만 너무 배경 색상하지 않습니다
편집
나는 그렇게처럼 내 코드를 수정했습니다. 어떤 아이디어?
[self.tableView beginUpdates]를 추가하십시오. 및 [self.tableView endUpdates]; 끝에 – Novarg
여전히 선택한 셀을 색칠 수 없습니다. : S – Phillip