ios - 定义 UIViewController 或 UIView 的自定义框架

标签 ios swift uiview uiviewcontroller sprite-kit

我正在 Swift 2.0 和 iOS >= 8 中制作一款游戏,其中我有初始 VC 托管管理游戏本身的 SKScene。

当玩家获胜或失败时,我想显示如下消息:

enter image description here

我通过从界面生成器加载的另一个 VC 显示此消息,并使用从初始 VC 类调用的以下代码:

let VCWin = self.storyboard!.instantiateViewControllerWithIdentifier("WinVC") as! WinVC
VCWin.modalPresentationStyle = UIModalPresentationStyle.FormSheet
VCWin.modalTransitionStyle = UIModalTransitionStyle.CrossDissolve
self.presentViewController(VCWin, animated: true, completion: nil)

重要的是,WinVC 允许像 FormSheet 和 CrossDissolve 属性一样查看变暗后面的内容。

WinVC 还将托管一个呈现 SKScene 的 View ,该 View 执行一些 Sprite 动画。

我的问题是删除黄色圆角附近的白色部分,以便看到后面的内容(就像屏幕变暗的其余部分一样)。

是否可以将 VC 的框架设置为此处使用的图像的掩码?或者将 View 的框架设置为所使用图像的 mask 并使 VC 下面透明?

我已经从 WinVC 中删除了所有内容,以避免出现由代码其他部分引起的问题

class WinVC: UIViewController
{
    override func viewDidLoad()
    {
        super.viewDidLoad()
    }

    override func viewDidAppear(animated: Bool)
    {
    }

    override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?)
    {
        for _ in touches
        {
            self.dismissViewControllerAnimated(false, completion: nil)
        }
    }

    override func viewDidDisappear(animated: Bool)
    {
    }
}

还有界面生成器中的设置:

VC 设置

enter image description here

查看设置

enter image description here

图像设置

enter image description here

最佳答案

您的框架很好 - 这可能是因为您的 UIViewController 包含一个具有白色背景的 View 对象。在 WinVC 类的 viewDidLoad 中,执行以下操作:

view.backgroundColor = UIcolor.clearColor()

关于ios - 定义 UIViewController 或 UIView 的自定义框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35295038/

相关文章:

ios - 搜索结果不起作用去添加 tableviewcell

ios - 带有部分的 UItabelview 内的多个 UICollectionviews - swift

ios - 使用 AFNetworking 解析 bool 响应

javascript - 在自动对焦 ios 网络浏览器上强制显示键盘

objective-c - 从restkit商店设置神奇记录默认上下文

swift - 如何在 Swift 中创建一个我可以选择调用的完成处理程序?

ios - uitableViewCell 转场不起作用。因为触发器?

ios - 使用自动布局分配中心

ios - UITableView 在重新加载时闪烁

iphone - 如何在 IOS 6 中获取此背景条?