作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我已经为我的 UIViewController 创建了一个扩展,我想声明一些我可以在整个扩展中使用的变量。下面是我的代码
extension UIViewController {
var mssgTopConstraint1: NSLayoutConstraint?
var mssgTopConstraint2: NSLayoutConstraint?
var mssgIconTop1: NSLayoutConstraint?
var mssgIconTop2: NSLayoutConstraint?
var isCheviClicked: Bool = false
}
我有这个错误扩展可能不包含所有五个变量的存储属性。
最佳答案
错误很明显,您不能在扩展中添加存储属性,您只能使用计算属性。
您可以子类化 UIViewController
并在您的自定义类中声明这些属性:
class MyViewController: UIViewController {
var mssgTopConstraint1: NSLayoutConstraint?
var mssgTopConstraint2: NSLayoutConstraint?
var mssgIconTop1: NSLayoutConstraint?
var mssgIconTop2: NSLayoutConstraint?
var isCheviClicked: Bool = false
}
这是一种更简洁的方法,因为使用这些属性扩展 UIViewController
没有太大意义,因为并非所有 Controller 都需要这些属性。
您可以实例化这个新 Controller ,或者在 XIB/Storyboard 中将类名设置为 MyViewController
。这样您就可以使用新的 Controller 和新声明的属性。
关于ios - 我如何在 swift 的扩展中声明 NSLayoutConstraint 类型的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52064648/
我是一名优秀的程序员,十分优秀!