Ios 按按钮后在自定义uitableview单元格中显示标签

Ios 按按钮后在自定义uitableview单元格中显示标签,ios,objective-c,iphone,Ios,Objective C,Iphone,我有一个带有三个标签的自定义tableViewCell(我们称之为“a”) 当在同一tableView的另一个单元格中按下按钮时(因为所有tableView单元格都不同),我想在“A”中显示一个标签以及这三个标签 我应该隐藏第四个标签并在按下按钮后将其取消隐藏吗?如何才能做到这一点?还有别的办法吗 我还应该在nib文件中添加该标签吗?当第一次加载表时,这不会给单元格增加额外的空间吗 谢谢你应该用下面的方法做 应该有一个实体对象,其中包含用于显示 第四个标签,或者您可以有一个全局标志 在要更改标

我有一个带有三个标签的自定义
tableViewCell
(我们称之为“a”)

当在同一tableView的另一个单元格中按下按钮时(因为所有tableView单元格都不同),我想在“A”中显示一个标签以及这三个标签

我应该隐藏第四个标签并在按下按钮后将其取消隐藏吗?如何才能做到这一点?还有别的办法吗

我还应该在nib文件中添加该标签吗?当第一次加载表时,这不会给单元格增加额外的空间吗


谢谢你应该用下面的方法做

  • 应该有一个实体对象,其中包含用于显示 第四个标签,或者您可以有一个全局标志
  • 在要更改标签的按钮上添加目标操作
  • 无论何时按下按钮,都应更改标志并重新加载该标志 部分
  • 标签的隐藏和取消隐藏代码应为 方法
    tableView:cellforrowatinexpath

    -(IBAction)ShowButtonTouchUpInside
    {
        NSRange range = NSMakeRange(0, 1);
        NSIndexSet *sectionToReload = [NSIndexSet indexSetWithIndexesInRange:range];                                     
        [self reloadSections:sectionToReload withRowAnimation:UITableViewRowAnimationNone];
     }
    
    
    - (UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath{
             static NSString *CellIdentifier = @"Cell";    
             UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
             if (isShowFourtLable)
             {
               cell.fourthlabel.hidden =  NO;
             }else
             {
               cell.fourthlabel.hidden =  YES;
             }
    
    }


你应该按照以下方式做

  • 应该有一个实体对象,其中包含用于显示 第四个标签,或者您可以有一个全局标志
  • 在要更改标签的按钮上添加目标操作
  • 无论何时按下按钮,都应更改标志并重新加载该标志 部分
  • 标签的隐藏和取消隐藏代码应为 方法
    tableView:cellforrowatinexpath

    -(IBAction)ShowButtonTouchUpInside
    {
        NSRange range = NSMakeRange(0, 1);
        NSIndexSet *sectionToReload = [NSIndexSet indexSetWithIndexesInRange:range];                                     
        [self reloadSections:sectionToReload withRowAnimation:UITableViewRowAnimationNone];
     }
    
    
    - (UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath{
             static NSString *CellIdentifier = @"Cell";    
             UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
             if (isShowFourtLable)
             {
               cell.fourthlabel.hidden =  NO;
             }else
             {
               cell.fourthlabel.hidden =  YES;
             }
    
    }


感谢您的帮助!隐藏和取消隐藏的代码是什么?谢谢你的帮助!隐藏和取消隐藏的代码是什么?它对你有用吗…它确实有用!但是加载到tableviewcell中的nib的大小保持不变。如果第四个标签被隐藏,我希望它的大小减小。您需要使用约束来管理它。因为第四个标签位于第二个和第三个标签之间,设置约束可以解决问题吗?如果是,我们讨论的是什么类型的约束?为了管理约束,您需要采用固定宽度约束和约束的出口。改变。恒量,当它对你有用时……它确实有用!但是加载到tableviewcell中的nib的大小保持不变。如果第四个标签被隐藏,我希望它的大小减小。您需要使用约束来管理它。因为第四个标签位于第二个和第三个标签之间,设置约束可以解决问题吗?如果是,我们讨论的是什么类型的约束?为了管理约束,您需要采用固定宽度约束和约束的出口。隐藏时更改.constant