【问题标题】:Hide custom cell image隐藏自定义单元格图像
【发布时间】:2013-02-04 06:28:03
【问题描述】:

我在UITableview 的cuttom 单元格中显示一个按钮。不需要时如何隐藏该按钮。例如:我在按钮上显示接收到的图像计数。如果计数为零,我需要从单元格中隐藏该按钮。

contactviewController.m
if (![[arr objectAtIndex:4] isEqualToString:@"0"]) {
            [cell1 setImg:[arr objectAtIndex:4]];
        }
Customcell.m

-(void)setImg:(NSString *)_text
{

        imgView.titleLabel.textColor = [UIColor whiteColor];
        [imgView setTitle:_text forState:UIControlStateNormal];
    }

【问题讨论】:

  • if([received_images Length] >0){ 显示你想显示的内容}
  • @user2003416 :不要在 customcell.m 中执行操作,而是将此条件放在使用 customcell 的类中。

标签: iphone xcode custom-cell


【解决方案1】:

您可以在 cellForRowAtIndex 方法中执行此操作。对于每行创建,都会调用此方法。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    if(condition)
    {
        //show button
    }
    else
    {
        // don't show button
    }
}

【讨论】:

  • @user2003416 :不要在 customcell.m 中执行操作,而是将此条件放在使用 customcell 的类中。
【解决方案2】:
 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
 {
      if(noImagesFound)
      {
           yourCustomCellObject.buttonObject.hidden = YES;
      }
      else
      {
           yourCustomCellObject.buttonObject.hidden = NO;
      }
 }

【讨论】:

    【解决方案3】:

    您可以通过 xib 将按钮添加到单元格中作为 IBOutlets 或通过设置框架并将按钮添加到单元格以编程方式。上述解决方案取决于您添加按钮的方式。如果您通过 xib 添加它作为插座,您可以执行以下任一操作。

    任何视图都有一个称为标签的属性。您可以在按钮的属性检查器和 -cellForRowAtIndexPath: 调用中将标签值设置为

    UIButton *button  =(UIButton*) [cell viewWithTag:9];
    
    // your tag value (say 9)
    

    并且使用 [button setHidden:YES] 隐藏 //NO to unhide 在这里你不需要自定义类

    1. 如果您已经为同一个创建了自定义类,您可以通过两种方法通过编程或通过 xib 添加按钮。如果是 xib,则创建一个 IBOutlet 并将其设置为自定义单元格的属性,以便您可以使用自定义单元格对象访问它。

    如果您需要对创建的单元格进行更多控制,最好选择第二个选项。如果您已将其设为属性,则可以通过使用单元格的对象来访问它。

    【讨论】:

    • 我为自定义单元格类创建了对象,并用它来隐藏 cellForRowAt 方法中的按钮。它没有隐藏
    • 您是如何将按钮连接到自定义单元格的?检查你的连接!
    • 不'您在该自定义单元格中没有该按钮的@property 插座? @
    • viewcontroller.m:contactObj.imgView.hidden=YES;
    • viewcontroller.h:ContactPicsCustom *contactObj;
    【解决方案4】:
    1. 创建 UITableViewCell.h 和 .m 文件。

    2. 在文件中创建一些变量,如 UILabel 和 UIImageView 对象,并使其成为 IBOutlet 并将它们与单元格 .xib 文件绑定。

    3. 在 UITableView 实现内部,在“cellForRowAtIndexPath”中,您可以使用该自定义 UITableViewCell 类对象并使用 UILable 和 UIImageView 的合成变量并使用它来相应地显示或隐藏。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-29
      • 2017-01-05
      • 2023-03-24
      • 1970-01-01
      相关资源
      最近更新 更多