将 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
【问题讨论】:
查看 iosUITableView
文档中的 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 覆盖在 UITableView 上
如何将静态 UIButton 覆盖在 UITableView 上
以编程方式将 UIButton 添加到 UITableView 错误点