我有一个tableview,如果在tableview上点击了一个单元格,我想创建一个UIView来弹出tableview并在tableview单元格中显示内容。我想在tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath)
中添加代码,以便在选择行时打开UIView。我只需要知道如何用UIView创建一个弹出窗口。我找不到任何帮助我解决这个问题的来源。关于如何做到这一点的一些解释将是非常棒的。提前谢谢!
答案 0 :(得分:2)
首先添加let vw = UIView()
,然后尝试此
vw.frame = CGRectMake(150, 150, 0, 0)
vw.backgroundColor = UIColor.redColor()
self.view.addSubview(vw)
UIView.animateWithDuration(0.5, delay: 0, options: UIViewAnimationOptions.TransitionCrossDissolve, animations: {
self.vw.frame = CGRectMake(75, 75, 300, 300)
}, completion: nil)
首先创建一个UIView,并设置其X和Y点(150),然后设置宽度和高度(300)。我只是添加一个背景颜色来表明它确实存在。然后animatedWithDuration
部分将重置框架,使其看起来像弹出。
如果您希望后面的视图变暗,请添加此项。
view.backgroundColor = UIColor(white: 1, alpha: 0.5)
关于触摸背景视图以关闭弹出视图。你需要一个轻敲手势识别器,并为它起作用
var tap = UITapGestureRecognizer()
tap.delegate = self
tap.addTarget(self, action: "tapped")
self.view.addGestureRecognizer(tap)
然后是它的功能
func tapped(){
vw.removeFromSuperview()
}
答案 1 :(得分:2)
如果您使用的是IOS 8或更高版本,您可以在新的UIViewController中创建UIView,其设置属性ModalPresentationStyle的值为UIModalPresentationStyle。在你做过类似的事情.SelectRowAtIndexPath:
var popoverContent = self.storyboard?.instantiateViewControllerWithIdentifier("NewCategory") as UIViewController
var nav = UINavigationController(rootViewController: popoverContent)
nav.modalPresentationStyle = UIModalPresentationStyle.Popover
var popover = nav.popoverPresentationController
popoverContent.preferredContentSize = CGSizeMake(500,600)
popover.delegate = self
popover.sourceView = self.view
popover.sourceRect = CGRectMake(100,100,0,0)
self.presentViewController(nav, animated: true, completion: nil)
答案 2 :(得分:2)
<强>步骤1 强>
创建一个UIView
,将框架设置为View.bounds
,同时为隐藏功能添加Tap gesture
。
<强>步骤-2 强>
目前查看点击,使用
UIView.animateWithDuration(1.0, animations: {
yourView.alpha = 1.0
})
<强>步骤-3 强>
隐藏
UIView.animateWithDuration(1.0, animations: {
yourView.alpha = 0.0
})
最后,如果您要隐藏使用hidden
或removefromsuperview