小编tim*_*mak的帖子

Swift CoreAnimation:zPosition应在(-FLT_MAX,FLT_MAX)范围内

我想始终把观点放在前面.在夫特CGFLOAT_MAXFLT_MAX与对应被替换.greatestFiniteMagnitude.所以,我用过:

view.layer.zPosition = .greatestFiniteMagnitude
Run Code Online (Sandbox Code Playgroud)

它工作正常,但现在我收到警告:

CoreAnimation: zPosition should be within (-FLT_MAX, FLT_MAX) range.
Run Code Online (Sandbox Code Playgroud)

有没有办法摆脱警告(这里可能有更好的价值)?

谢谢.

max zposition swift

5
推荐指数
1
解决办法
1201
查看次数

通知扩展访问核心数据

我正在尝试使用自定义 UI 发送本地通知,该通知向用户显示的内容多于通知本身包含的内容。我想从应用程序的核心数据中获取内容。是否可以?当我调试通知内容扩展时,它会在检索核心数据模型路径的以下行崩溃:

let modelURL = NSBundle.mainBundle().URLForResource("Model", withExtension: "momd")!

此外,当我print(NSBundle.allBundles())从通知扩展代码中时,它只打印与扩展相关的一个 (.../PlugIns/Notification Content.appex> (loaded))

那么有没有办法访问通知内容扩展中的核心数据呢?我也想尝试使用通知服务扩展,但看起来它只能用于推送通知(不是本地)。

notifications core-data uilocalnotification swift ios10

4
推荐指数
1
解决办法
1280
查看次数

UIView superview属性弱还是强?

UIView标头声明superview属性很强

open var superview: UIView? { get }
Run Code Online (Sandbox Code Playgroud)

但它的行为就像一个弱属性,即如果我创建view1和view2然后调用view1.addSubview(view2),然后只将一个强引用保存到view2(而不是view1),即使view2引用了view1,它也会被删除通过其superview属性.

所以,我想知道它是如何在现实中实现的.

编辑:例如,此代码打印"deinit"(ViewController实例显示在屏幕上),这意味着它view1已被删除,即使view2应该通过superview属性强烈保持它.

class View: UIView {
    deinit {
        print("deinit")
    }
}

class ViewController: UIViewController {

    var view2 = UIView()

    override func viewDidLoad() {
        super.viewDidLoad()

        let view1 = View()
        view1.addSubview(view2)
    }
}
Run Code Online (Sandbox Code Playgroud)

xcode uikit uiview superview ios

2
推荐指数
2
解决办法
830
查看次数