在 Cell 上隐藏 MenuView
Hide MenuView on Cell
我在单元格上有一个按钮 单击此按钮我想打开一个视图,效果很好。现在的问题是当我们点击下一个单元格按钮时,我之前的视图不会隐藏。
这是我正在尝试两种方式但不起作用的方法。请帮忙。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *simpleTableIdentifier = @"CustumCellTableViewCell";
CustumCellTableViewCell *cell = (CustumCellTableViewCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
if (cell == nil)
{
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"CustumCellTableViewCell" owner:self options:nil];
cell = [nib objectAtIndex:0];
}
cell.touchButton.tag =indexPath.row;
[cell.touchButton addTarget:self action:@selector(menuButtonClick:) forControlEvents:UIControlEventTouchUpInside];
cell.menuView.hidden = YES;
return cell;
}
- (void) menuButtonClick:(id) sender
{
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:[sender tag] inSection:0];
CustumCellTableViewCell *cell=(CustumCellTableViewCell *)[table cellForRowAtIndexPath: indexPath];
if (cell.menuView.hidden) {
cell.menuView.hidden = NO;
} else {
cell.menuView.hidden = YES;
}
1 method
for ( CustumCellTableViewCell *cell1 in table.visibleCells ) {
NSLog(@"%@",cell1);
if (cell1 != cell) {
cell.menuView.hidden = YES;
}
}
2 method
for (NSIndexPath *indexpaths in [table indexPathsForVisibleRows] ) {
if (indexpaths == indexPath) {
cell.menuView.hidden = NO;
}
else
{
cell.menuView.hidden = YES;
}
}
}
您正在使用当前选定的单元格。如果您想隐藏最后选择的单元格菜单,则必须存储 最后选择的单元格索引。
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:lastSelectedCell inSection:0];
CustumCellTableViewCell *cell=(CustumCellTableViewCell *)[table cellForRowAtIndexPath: indexPath];
cell.menuView.hidden = YES;
/*
your code goes here
*/
lastSelectedCell = [sender tag];
[for ( CustumCellTableViewCell *cell1 in \[table visibleCells\] ) {
if (cell1 != cell) {
cell1.menuView.hidden = YES;
}
else
{
cell1.menuView.hidden = NO;
}
}][1]
[1]: http://
您可以使用 indexPath.row 添加单元格标签并比较 cell.tag 是否等于 [发件人标签]。还要检查您的发件人标签值是否正确。
- (void) menuButtonClick:(id) sender
{
[table reloadData];
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:[sender tag] inSection:0];
CustumCellTableViewCell *cell=(CustumCellTableViewCell *)[table cellForRowAtIndexPath: indexPath];
if(cell.tag==[sender tag]){
cell.menuView.hidden = NO;
} else {
cell.menuView.hidden = YES;
}
}
我在单元格上有一个按钮 单击此按钮我想打开一个视图,效果很好。现在的问题是当我们点击下一个单元格按钮时,我之前的视图不会隐藏。 这是我正在尝试两种方式但不起作用的方法。请帮忙。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *simpleTableIdentifier = @"CustumCellTableViewCell";
CustumCellTableViewCell *cell = (CustumCellTableViewCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
if (cell == nil)
{
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"CustumCellTableViewCell" owner:self options:nil];
cell = [nib objectAtIndex:0];
}
cell.touchButton.tag =indexPath.row;
[cell.touchButton addTarget:self action:@selector(menuButtonClick:) forControlEvents:UIControlEventTouchUpInside];
cell.menuView.hidden = YES;
return cell;
}
- (void) menuButtonClick:(id) sender
{
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:[sender tag] inSection:0];
CustumCellTableViewCell *cell=(CustumCellTableViewCell *)[table cellForRowAtIndexPath: indexPath];
if (cell.menuView.hidden) {
cell.menuView.hidden = NO;
} else {
cell.menuView.hidden = YES;
}
1 method
for ( CustumCellTableViewCell *cell1 in table.visibleCells ) {
NSLog(@"%@",cell1);
if (cell1 != cell) {
cell.menuView.hidden = YES;
}
}
2 method
for (NSIndexPath *indexpaths in [table indexPathsForVisibleRows] ) {
if (indexpaths == indexPath) {
cell.menuView.hidden = NO;
}
else
{
cell.menuView.hidden = YES;
}
}
}
您正在使用当前选定的单元格。如果您想隐藏最后选择的单元格菜单,则必须存储 最后选择的单元格索引。
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:lastSelectedCell inSection:0];
CustumCellTableViewCell *cell=(CustumCellTableViewCell *)[table cellForRowAtIndexPath: indexPath];
cell.menuView.hidden = YES;
/*
your code goes here
*/
lastSelectedCell = [sender tag];
[for ( CustumCellTableViewCell *cell1 in \[table visibleCells\] ) {
if (cell1 != cell) {
cell1.menuView.hidden = YES;
}
else
{
cell1.menuView.hidden = NO;
}
}][1]
[1]: http://
您可以使用 indexPath.row 添加单元格标签并比较 cell.tag 是否等于 [发件人标签]。还要检查您的发件人标签值是否正确。
- (void) menuButtonClick:(id) sender
{
[table reloadData];
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:[sender tag] inSection:0];
CustumCellTableViewCell *cell=(CustumCellTableViewCell *)[table cellForRowAtIndexPath: indexPath];
if(cell.tag==[sender tag]){
cell.menuView.hidden = NO;
} else {
cell.menuView.hidden = YES;
}
}