屏幕上显示下拉列表时设置叠加

时间:2016-06-17 14:03:12

标签: ios objective-c overlay

我有一个下拉按钮,当用户点击它时会出现下拉列表,这是一个隐藏的桌面视图。

- (IBAction)showDropDown:(id)sender {
    self.tableView.hidden = NO;
}

现在我想将整个屏幕叠加设置为66%,就像模糊的屏幕一样,只排除按钮和tableView。它们必须清晰可见。当用户选择时......

-(void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath{
    self.tableView.hidden = YES;
}

一切都会再次相同。

2 个答案:

答案 0 :(得分:0)

好的,所以看看这里学习如何制作模糊视图

Creating a blurring overlay view

现在是一个模糊的视图,整个屏幕为框架。

而不是addsubView使其出现,请使用

[self.View insertSubview:blurredView belowSubView:yourTable];

希望这有用..:)

答案 1 :(得分:0)

要将叠加视图作为子视图插入,您必须使用UITableViewController而不是UIViewController
您可以在表格下方插入叠加层

view.insertSubview(view: overlayView, belowSubview: tableView)

但这不会覆盖整个屏幕(导航栏和状态栏仍然可见)

要解决此问题,您必须创建一个新窗口

let window = UIWindow(frame: UIScreen.mainScreen().bounds)

window.addSubview(yourTableView)

// This will make window above the status bar
window.windowLevel = UIWindowLevelAlert

// Set to overlay color
window.backgroundColor = UIColor(white: 0, alpha: 0.66)

// Display the window that contains the table view
window.makeKeyAndVisible()