将 UIButton 放入 UITableView

Posted

技术标签:

【中文标题】将 UIButton 放入 UITableView【英文标题】:Put a UIButton inside a UITableView 【发布时间】:2011-04-28 15:01:33 【问题描述】:

我正在尝试将UIButton 放入UITableViewCell

UITableView 也有包含UILabels 的单元格,并且单元格有渐变背景被绘制到其中。我看到的问题是我的UIButton 只是一个没有文本显示的填充黑色单元格,并且更改颜色和背景颜色属性似乎没有任何作用。

这是我用来创建按钮的代码:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

    NSLog(@"InAppViewController, doing this - width= %f", self.wdth);
    static NSString *ProductTableIdentifier = @"ProductTableIdentifier";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ProductTableIdentifier];
    if (cell == nil)
    
        if (self.wdth >= 700) 
            CGRect cellFrame = CGRectMake(0, 0, (self.wdth - 100), 40);
            cell = [[[UITableViewCell alloc] initWithFrame:cellFrame reuseIdentifier: ProductTableIdentifier] autorelease];

            // Set up some labels...

            CGRect seenValueRect = CGRectMake(self.wdth-320, 0, 100, 40);
            UIButton *seenValue = [UIButton buttonWithType:UIButtonTypeRoundedRect];
            [seenValue setBackgroundColor:[UIColor greenColor]];
            seenValue.tag = kSeenValueTag;
            seenValue.frame = seenValueRect;
            [seenValue setTitle:@"I'm a clone" forState:UIControlStateNormal];

            [cell.contentView addSubview:seenValue];

            [seenValue release];

            // Continue setting up cell...

pastebin 链接包含整个 cellForRowAtIndexPath() 函数的代码(用于相关的 UITableView)。

http://pastebin.com/bpEyfruE

【问题讨论】:

查看 ios UITableView 文档中的 Customizing Cells 部分:developer.apple.com/library/ios/#documentation/userexperience/… 【参考方案1】:

也许问题在于您正在释放使用便捷初始化程序 [UIButton buttonWithType:(UIButtonType)] 初始化的 UIButton。尝试删除[button release]

【讨论】:

【参考方案2】:

甚至不可能你必须使用[cell addSubview:seenValue]; 而不是[cell.contentView addSubview:seenValue];

您也可以尝试使用CGRectMake(110, 11, 185, 30) 而不是CGRectMake(self.wdth-320, 0, 100, 40):我使用它并且效果很好,但我不知道您是否需要它

【讨论】:

以上是关于将 UIButton 放入 UITableView的主要内容,如果未能解决你的问题,请参考以下文章

UIButton 嵌入 UIVIew 不负责任

如何将静态 UIButton 覆盖在 UITableView 上

如何将静态 UIButton 覆盖在 UITableView 上

以编程方式将 UIButton 添加到 UITableView 错误点

将 UIButton 添加到 UItableview 单元格

以编程方式将 UIButton 添加到 UITableView 但按钮不显示