如何在Swift中创建弹出视图

3

我将尝试在现有视图中创建一个弹出视图:每当按下按钮时,弹出视图都会出现。

这是我在按钮被按下时使用的代码:

@IBAction func addFees(sender: UIButton) {
    UIView.beginAnimations(nil, context: nil)
    UIView.setAnimationDuration(0.3)
    view2.frame = CGRectMake(0, 200, 320, 261)
    UIView.commitAnimations()
}

这是我用来消除它的代码。
@IBAction func doneButton(sender: UIBarButtonItem) {
    UIView.beginAnimations(nil, context: nil)
    UIView.setAnimationDuration(0.3)
    listingfees.frame = CGRectMake(0, 1000, 320, 261)
    UIView.commitAnimations()
}

问题在于我有其他按钮和标签,当视图出现时它们似乎重叠在一起。 我不知道如何解决它。我不确定是否有更简单的方法,但我已经卡在这个问题上一段时间了。
我希望它看起来像右边的图片。
1个回答

1
如果您希望弹出窗口在顶部显示,Popover应该由基础视图控制器呈现。
@IBAction func addFees(sender: UIButton){
let viewController =  "Your Popover View Controller class"
viewController.modalPresentationStyle = .Popover
viewController.preferredContentSize = CGSizeMake(320, 261)

let popoverPresentationViewController = viewController.popoverPresentationController
popoverPresentationViewController?.permittedArrowDirections = .Any
popoverPresentationViewController?.delegate = self
popoverPresentationController?.sourceRect = sender.frame
presentViewController(playerInformationViewController, animated: true, completion: nil)

}


当我按下按钮时,屏幕变黑。 - sky1995
你为弹出框创建了不同的类吗? - User31
1
我建议不要硬编码帧值 - 最好进行一些轻量级的计算,以获得您想要的大小比例,而不考虑屏幕尺寸。 - Dylan Reich

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接