如何创建一个包含单个 UIButton 的 UITableViewCell 占用大部分单元格空间?

发布于 2024-11-10 04:55:17 字数 699 浏览 0 评论 0原文

我正在尝试创建一个包含单个大按钮的 UITableViewCell。

我尝试了看似显而易见的方法,将 UIButton 添加到单元格的 contentView 中,但它不起作用(单元格显示为空)。我东什么错了?

UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:@"startButtonCell"];
if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault 
                                   reuseIdentifier:@"startButtonCell"] autorelease];
    UIButton *btn = [[UIButton alloc] initWithFrame:cell.contentView.bounds];
    [cell.contentView addSubview:btn];
    if (!self.task.isCompleted) {
        btn.titleLabel.text = @"Start!";
    }else{
        btn.titleLabel.text = @"Continue!";
    }
    [btn release];
}

I'm trying to create a UITableViewCell that contains a single big button.

I tried what seemed obvious, adding a UIButton to the cell's contentView, but it didn't work (the cell is displayed empty). What am I dong wrong?

UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:@"startButtonCell"];
if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault 
                                   reuseIdentifier:@"startButtonCell"] autorelease];
    UIButton *btn = [[UIButton alloc] initWithFrame:cell.contentView.bounds];
    [cell.contentView addSubview:btn];
    if (!self.task.isCompleted) {
        btn.titleLabel.text = @"Start!";
    }else{
        btn.titleLabel.text = @"Continue!";
    }
    [btn release];
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

春花秋月 2024-11-17 04:55:17

尝试以下操作:

UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[btn setFrame:cell.contentView.frame];
[btn setTitle:@"Button Title" forState:UIControlStateNormal];
[cell.contentView addSubview:btn];

我到目前为止不是专家,但我认为您的解决方案的问题是,默认情况下 UIButton 的按钮样式是 UIButtonTypeCustom,它是不可见的,因为它尚未自定义。如果我将上面的代码从 更改为

UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];

UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];

我会得到与您相同的结果。没有可见的按钮。如果您想使用 UIButtonTypeCustom,则需要进行一些自定义。例如,向按钮添加背景图像。

Try the following:

UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[btn setFrame:cell.contentView.frame];
[btn setTitle:@"Button Title" forState:UIControlStateNormal];
[cell.contentView addSubview:btn];

I am by far no expert but I think the problem with your solution is that by default the button style of UIButton is UIButtonTypeCustom, which is invisible because it is not customized yet. If I change the code above from

UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];

to

UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];

I get get the same result you do. No Button visible. If you would like to use UIButtonTypeCustom you would have do do some customization. Adding a background image to your button for example.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文