我是iOS开发的新手,我遇到了图形问题: 我创建了一个显示在谷歌地图视图上方的UIPickerView。我想让选择器视图宽度与主视图宽度相匹配。 目前,拾取器总是占据视图的3/4并且位于左上角:
我试着这样做:
IE11
答案 0 :(得分:2)
您可以为uipickerview创建约束。选择选择器视图并设置以下约束。您可以在故事板中设置约束。
尾随空格:0 领先空间:0 波顿空间:0
https://www.raywenderlich.com/115444/auto-layout-tutorial-in-ios-9-part-2-constraints
答案 1 :(得分:1)
你的问题不是组件的宽度,self.view.bounds.width已经修复了,你有一个布局问题。
检查拾取器视图的自动布局约束,如果使用Xcode自动设置约束,则可能具有固定值宽度或高度约束。
如果您以编程方式添加了pickerView,请检查您的框架是否与视图具有相同的宽度,或者约束是否正确(请参阅Sharat的回答)
编辑:代码以编程方式设置pickerView宽度 -
//call this in viewDidLoad
func resizePickerViewToScreenWidth(){
let oldFrame = airspacePicker.frame
var newFrame = oldFrame
newFrame.size.width = view.frame.size.width
airspacePicker.frame = newFrame
}
编辑2:代码以编程方式创建pickerView
var airspacePicker: UIPickerView!
override func viewDidLoad() {
super.viewDidLoad()
createPickerView()
}
func createPickerView() {
airspacePicker = UIPickerView(frame: CGRect(origin: CGPointZero, size: CGSize(width: view.frame.width, height: 220.0)))
airspacePicker.backgroundColor = UIColor.blackColor()
airspacePicker.autoresizingMask = .FlexibleWidth
view.addSubview(airspacePicker)
}