San*_*wat 3 nsdictionary ios nslayoutconstraint swift
import UIKit
import Foundation
class DetailView: UIViewController{
var fullImage:UIImageView?
var nameLabel:UILabel?
var detailLabel:UILabel?
override func viewDidLoad() {
super.viewDidLoad()
fullImage = UIImageView()
nameLabel = UILabel()
detailLabel = UILabel()
self.view.addSubview(fullImage!)
self.view.addSubview(nameLabel!)
self.view.addSubview(detailLabel!)
}
func applyContraints(){
self.view.addSubview(fullImage!)
fullImage?.setTranslatesAutoresizingMaskIntoConstraints(false)
nameLabel?.setTranslatesAutoresizingMaskIntoConstraints(false)
detailLabel?.setTranslatesAutoresizingMaskIntoConstraints(false)
var viewsDict:[String:AnyObject!] = ["imageView": fullImage!, "nameLabel": nameLabel!, "detailLabel": detailLabel!]
var constraints:NSArray
constraints = NSLayoutConstraint.constraintsWithVisualFormat("H:|-10-[imageView]-10-|",
options: 0,
metrics: nil,
views: viewsDict)
self.view.addConstraints(constraints)
}
}
Run Code Online (Sandbox Code Playgroud)
小智 5
所述views的PARAM constraintsWithVisualFormat期望类型的字典[NSObject: AnyObject].
创建时viewsDict,尝试将其声明为[NSObject: AnyObject]:
var viewsDict: [NSObject: AnyObject] = ["imageView": fullImage!, "nameLabel": nameLabel!, "detailLabel": detailLabel!]
Run Code Online (Sandbox Code Playgroud)
您还必须将optionsparam值更改0为nil
此外,如果您想摆脱选项,您可以尝试以下方法:
var fullImage = UIImageView()
var nameLabel = UILabel()
var detailLabel = UILabel()
Run Code Online (Sandbox Code Playgroud)
代替:
var fullImage: UIImageView?
var nameLabel: UILabel?
var detailLabel: UILabel?
Run Code Online (Sandbox Code Playgroud)
然后,对于viewsDict声明,您可以删除!:
var viewsDict: [NSObject: AnyObject] = ["imageView": fullImage, "nameLabel": nameLabel, "detailLabel": detailLabel]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1073 次 |
| 最近记录: |