我有一个项目,我想在视图加载时在开头禁用UITableView
的单元格,按下按钮后,应启用UITableView
的单元格,并且应该工作正常。
我该怎么做?
答案 0 :(得分:8)
你可以使用 table.allowsSelection = NO; 在viewwillappear方法中,然后在按钮点击事件中将其设为YES。
答案 1 :(得分:2)
如果您想禁用整个表格,那么您可以使用:
table.userInteractionEnabled = FALSE;
然后点击按钮:
table.userInteractionEnabled = TRUE;
答案 2 :(得分:1)
//In UIButton pressed event
boolEnabled=YES; //Declare it in header file
[yourTableView reloadData]; //reload UITableView
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
//After creating a cell
if(boolEnabled==YES) //Will enable for any action
{
cell.userInteractionEnabled=YES;
}
else
{ //disable for any action
cell.userInteractionEnabled=NO; //Default boolEnabled=NO;
}
}
答案 3 :(得分:1)
我要做的是@property (nonatomic) BOOL tableIsActive
在- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
我会做
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
if(self.tableIsActive)
{
//style cells for enabled table
}
else
{
//style cells for enabled table
}
}
然后在我的- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
我会
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if(self.tableIsActive)
{
//handle selection
}
else
{
[tableView deselectRowAtIndexPath:indexPath animated:NO];
}
}
然后我会有一个函数-(void) enableTable:(id)sender
,它绑定到我的按钮
-(void) enableTable:(id)sender
{
if(self.tableIsActive)
self.tableIsActive = NO;
else
self.tableIsActive = YES;
}
然后启用调用[yourTable reloadData];
答案 4 :(得分:0)
你可以使用下面的代码来做,只需检查TableView delgate方法中的条件
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *categoryIdentifier = @"Category";
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
//Way to stop to choose the cell selection
if(indexpath.row==0)
{
cell.selectionStyle = UITableViewCellSelectionStyleNone;
Or
cell.userIneractionEnabled=False;
}
//while rest of the cells will remain active, i.e Touchable
return cell;
}