我在设置 UITableView 时遇到了一个奇怪的错误。发生的情况是,当我第一次单击它时,什么也没有发生(它应该更改 UIView),但是当我单击它上方或下方的单元格时,它会更改为我想要显示的 UIView。我正在创建它,就像我创建的所有其他 tableview 一样,这里是代码:
- (void)viewDidLoad {
[super viewDidLoad];
TableView = [[UITableView alloc] initWithFrame:CGRectMake(0,0,320.0,120.0)];
// Table View is an iVar in the header file
TableView.dataSource = self;
TableView.delegate = self;
}
-(CGFloat)tableViewUITableView *)tableView heightForRowAtIndexPathNSIndexPath *)indexPath {
return 44;
}
-(CGFloat)tableViewUITableView *)tableView heightForHeaderInSectionNSInteger)section {
return 10;
}
-(NSInteger)tableViewUITableView *)tableView numberOfRowsInSectionNSInteger)section {
return 5;
}
-(NSInteger)numberOfSectionsInTableViewUITableView *)tableView {
return 1;
}
-(UITableViewCell*)tableViewUITableView *)tableView cellForRowAtIndexPathNSIndexPath *)indexPath {
static NSString* CellIdentifier = @"CELLIDENTIFIER";
UITableViewCell* cell = [TableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
[cell setSelectionStyle:UITableViewCellSelectionStyleBlue];
[cell setBackgroundView:[[GMCellBackground alloc] init]];
}
cell.textLabel.text = [array objectAtIndex:indexPath.row];
return cell;
}
-(void)tableViewUITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath {
}
我想我看到了你的问题。你在评论中写道,你改变了观点
-(void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath
请注意,它是 didDeselect 而不是 didSelect。我想你想要的是改变观点
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
我认为这是一个常见错误,原因是人们接受了 Xcode 的自动完成建议而没有注意到它不是正确的方法。
它在您第二次单击时起作用的原因是被选中的第一个单元格被取消选中,因此您的方法被调用。
关于iphone - 奇怪的 UITableView 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12433379/
欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://jike.in/) | Powered by Discuz! X3.4 |