繁体   English   中英

从UIViewController呈现半透明的UITableView

[英]Presenting a semi-transparent UITableView from a UIViewController

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

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

这提供了一个视图控制器,尽管它占据了整个屏幕,但这不是我想要的。 而且在实例化时更改视图控制器的框架似乎没有任何效果。 我可以将UITableView设置为主视图控制器的视图的动画,但是然后我不确定是谁作为委托和数据源。 有什么建议么? 提前致谢。

在将表格视图添加为子视图时,您可以设置其框架大小或边界,并根据需要随动画一起显示。 是的,您可以在添加时将委托和数据源设置为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值会因您的情况而改变,但这可以衡量单元的不透明度)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM