热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

无法转换UILayoutPriority类型的值

如何解决《无法转换UILayoutPriority类型的值》经验,为你挑选了1个好方法。

我试图将约束的优先级更改为高于另一个约束的优先级.在Swift 4/iOS 11中,此代码不再编译:

let p = self.lab2.contentCompressionResistancePriority(for:.horizontal)
self.lab1.setContentCompressionResistancePriority(p+1, for: .horizontal)

我该怎么做?



1> matt..:

在Swift 4/iOS 11中,UILayoutPriority不再是一个简单的数字; 它是一个RawRepresentable结构.你必须通过遍历rawValue结构来进行算术运算.

手头有一个如下所示的扩展可能是有用的:

extension UILayoutPriority {
    static func +(lhs: UILayoutPriority, rhs: Float) -> UILayoutPriority {
        let raw = lhs.rawValue + rhs
        return UILayoutPriority(rawValue:raw)
    }
}

现在,+运算符可用于将UILayoutPriority与数字组合,就像过去一样.您的问题中的代码现在将正确编译(和工作).


推荐阅读
author-avatar
dnjaskn
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有