Ios 设置自定义请求按钮

Ios 设置自定义请求按钮,ios,uber-api,Ios,Uber Api,我刚刚开始探索Uber iOS Sdk。我正在检查RequestButton,并注意到它没有使用我们正在传递的任何帧。是否可以将按钮置于视图的所需位置 let button = RequestButton(colorStyle:.White) view.addSubview(button) button.frame = CGRectMake(100,300, button.frame.size.width, button.frame.size.height) 可以在所需位置添加RequestB

我刚刚开始探索Uber iOS Sdk。我正在检查RequestButton,并注意到它没有使用我们正在传递的任何帧。是否可以将按钮置于视图的所需位置

let button = RequestButton(colorStyle:.White)
view.addSubview(button)
button.frame = CGRectMake(100,300, button.frame.size.width, button.frame.size.height)

可以在所需位置添加RequestButton。RequestButton使用自动布局(或基于约束的布局)而不是基于帧的布局定位。请参阅苹果公司的注释

“自动布局”可确保在机架改变方向和不同设备尺寸时调整大小。在“自动布局”中,需要根据UIView相对于其他视图的相对位置放置它们

下面是一个示例,说明如何将RequestButton(
按钮
)置于父UIView(
查看
)内的中心位置


可以在所需位置添加RequestButton。RequestButton使用自动布局(或基于约束的布局)而不是基于帧的布局定位。请参阅苹果公司的注释

“自动布局”可确保在机架改变方向和不同设备尺寸时调整大小。在“自动布局”中,需要根据UIView相对于其他视图的相对位置放置它们

下面是一个示例,说明如何将RequestButton(
按钮
)置于父UIView(
查看
)内的中心位置


也许有一个更简单的方法,但我发现这个解决方案是使用基于帧的布局来定位Uber RequestButton

将请求按钮放在包装器UIView中。通过的答案设置包装器视图上的约束。然后您可以定位包装器的框架,RequestButton将随之移动

// MyView.swift
let uber = RequestButton()
let uberWrapper = UIView()

uberWrapper.addSubview(uber)
self.addSubview(uberWrapper)

//Set constraints
let horizontalConstraint = NSLayoutConstraint(item: uber, attribute: NSLayoutAttribute.CenterX, relatedBy: NSLayoutRelation.Equal, toItem: uberWrapper, attribute: NSLayoutAttribute.CenterX, multiplier: 1, constant: 0)
let verticalConstraint = NSLayoutConstraint(item: uber, attribute: NSLayoutAttribute.CenterY, relatedBy: NSLayoutRelation.Equal, toItem: uberWrapper, attribute: NSLayoutAttribute.CenterY, multiplier: 1, constant: 0)

// add constraints to view
uberWrapper.addConstraints([horizontalConstraint, verticalConstraint])

//layoutSubviews()
//set your origin
uberWrapper.frame = CGRect(origin: CGPointMake(0, 0), size: uber.intrinsicContentSize()) 

也许有一个更简单的方法,但我发现这个解决方案是使用基于帧的布局来定位Uber RequestButton

将请求按钮放在包装器UIView中。通过的答案设置包装器视图上的约束。然后您可以定位包装器的框架,RequestButton将随之移动

// MyView.swift
let uber = RequestButton()
let uberWrapper = UIView()

uberWrapper.addSubview(uber)
self.addSubview(uberWrapper)

//Set constraints
let horizontalConstraint = NSLayoutConstraint(item: uber, attribute: NSLayoutAttribute.CenterX, relatedBy: NSLayoutRelation.Equal, toItem: uberWrapper, attribute: NSLayoutAttribute.CenterX, multiplier: 1, constant: 0)
let verticalConstraint = NSLayoutConstraint(item: uber, attribute: NSLayoutAttribute.CenterY, relatedBy: NSLayoutRelation.Equal, toItem: uberWrapper, attribute: NSLayoutAttribute.CenterY, multiplier: 1, constant: 0)

// add constraints to view
uberWrapper.addConstraints([horizontalConstraint, verticalConstraint])

//layoutSubviews()
//set your origin
uberWrapper.frame = CGRect(origin: CGPointMake(0, 0), size: uber.intrinsicContentSize())