iPhone:添加背景按钮,以便在UITableView没有单元格时查看

时间:2010-06-06 04:13:56

标签: iphone view uitableview

我有一个UITableViewController,当没有数据填充UITableView时,我想添加一个使用图像的按钮。因此,他们不会看到没有记录的桌面视图,而是会看到一个图像,上面写着“没有添加任何记录,点击添加一个”,然后他们点击,我们创建一个新记录。

我假设我只是隐藏UITableView,然后创建按钮,但我从未看到按钮。我在这里使用:

if ([[fetchedResultsController sections] count] == 0) {
        self.tableView.hidden = YES;
        // Create button w/ image
        UIButton * btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
        btn.frame = CGRectMake(0, 0, 100, 50);
        [btn setImage:[UIImage imageNamed:@"no-rides.png"] forState:UIControlStateNormal];
        [self.view addSubview:btn];
    }

为什么我永远不会看到按钮的想法?当我显示这个视图时,它似乎有一个透明的背景,然后改变白色......

4 个答案:

答案 0 :(得分:1)

在UITableViewController中,self.view可以是self.tableView,在这种情况下隐藏表也会隐藏按钮。尝试使用自定义UIViewController并创建表或按钮作为self.view的子视图。

或者,如果没有数据,您可以创建一个包含按钮的自定义单元格,并使用该单元格而不是正常单元格。

答案 1 :(得分:1)

我不确定它是否有效,但你可以试试这个:

  1. 如果你的视图控制器不是UITableViewController,它包含一个UITableView [self.tableView removeFromSuperview];然后[self.view addSubview];

  2. 如果您的视图控制器是UITableViewController,您可能需要考虑设置第一行以包含图像和文本。然后,您可以处理事件:tableView:didSelectRowAtIndexPath:如果用户单击第一个单元格,则触发方法处理按钮事件

答案 2 :(得分:0)

我相信您可以将按钮添加到表格页脚,因为即使没有单元格也会显示表格页脚。 (注意,这与章节页脚不同。)

默认情况下,tableFooterView的{​​{1}}属性为UITableView。所以只需创建按钮,然后执行:

nil

答案 3 :(得分:0)

对于所有未来的旅行者,我只需设置.userInteraction = true(斯威夫特),它就像一个魅力。总而言之:

tableView.backgroundView = constructMyViewWithButtons()
tableView.backgroundView!.userInteraction = true