从UIViewController呈现半透明的UITableView

时间:2013-11-13 22:07:16

标签: ios iphone uitableview uiview uiviewcontroller

我正在开发一个应用程序,它依赖于一个主视图控制器,底部有一排按钮,用于显示包含信息的其他视图。从这些按钮中的一个我想呈现一个表格视图,其中显示了歌曲标题列表。这个应用程序播放声音文件,我希望用户能够点击一个按钮,然后选择一首歌作为默认歌曲播放。我想用uiview动画呈现这个tableview,我希望它是半透明的,只填充屏幕的一部分。我已经尝试创建一个UITableViewController,然后从主视图控制器中呈现它,如下所示:

UITableViewController *tableView = [[UITableViewController alloc]init];
[self presentViewController:tableView animated:YES completion:nil];

这提供了一个视图控制器,它可以填满整个屏幕,这不是我想要的。并且在实例化时更改视图控制器的帧似乎没有效果。我可以将UITableView设置为主视图控制器的视图,但是我不确定谁应该是委托和数据源。有什么建议?提前谢谢。

1 个答案:

答案 0 :(得分:0)

将表视图添加为子视图时,您可以设置其帧大小或绑定,并使用动画显示它,无论您喜欢什么。是的,您可以在添加时将委托和数据源设置为self。

我使用:(在viewDidLoad中)

 self.tableView.backgroundColor = [UIColor clearColor];
    self.tableView.opaque = NO;

然后在cellForRowAtIndexPath:

cell.textLabel.backgroundColor = [UIColor clearColor];
    cell.detailTextLabel.backgroundColor = [UIColor clearColor];
    cell.backgroundColor = [UIColor colorWithWhite:1 alpha:.55];

不确定这是否是您想要的,但它为您提供了清除所有内容的选项。 (显然,alpha会因你的情况而改变,但是它会测量细胞的不透明度)