2017-07-20 34 views
0

我有一个非常大的标志(58312 x 1478像素),我使用alamofire图像缩小了它的大小,然后将约束设置为在视图(self.view)中水平和垂直居中,如下所示可视化流程布局(VFL)。 由于下面的限制标志不集中,有人可以请建议我去哪里错了。将约束设置为动态缩小的图像。 Swift

let viewWidth = self.view.bounds.width 
let viewHeight = self.view.bounds.height 


let logoView    = UIImageView() 
logoView.translatesAutoresizingMaskIntoConstraints = false 

let logo      = UIImage(named: "logo") 
let logoSize     = CGSize(width: 200.0, height: 100.0) 
let aspectScaledToFitImage  = logo.af_imageAspectScaled(toFit: logoSize) 

logoView.image     = aspectScaledToFitImage 
self.view.addSubview(logoView) 

let logoHeight   = logoView.frame.size.height 
let logoWidth   = logoView.frame.size.width 

let logoViewTopSpacing  = (viewHeight/2) + (logoHeight/2) 
let logoViewSideSpacing = (viewWidth/2) + (logoWidth/2) 


let views = [ 
    "logoView"  : logoView 
] 

// SETTING CONSTRAINTS 
view.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "H:|-\(logoViewSideSpacing)-[logoView]", options: [], metrics: nil, views: views)) 
view.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:|-\(logoViewTopSpacing)-[logoView]", options: [], metrics: nil, views: views)) 

回答

0

我想通了

通过用

let logoHeight   = logoView.frame.size.height 
let logoWidth   = logoView.frame.size.width 

let logoViewTopSpacing  = (viewHeight/2) + (logoHeight/2) 
let logoViewSideSpacing = (viewWidth/2) + (logoWidth/2) 

替换下面

let imageWidth   = aspectScaledToFitImage.size.width 
let imageHeight   = aspectScaledToFitImage.size.height 


let logoViewTopSpacing  = (viewHeight/2) - (imageHeight/2) 
let logoViewSideSpacing = (viewWidth/2) - (imageWidth/2) 

的解决定心视图内的标志的问题