使 UIPickerView 宽度填满视图
Make UIPickerView width fill the view
我是 iOS 开发的新手,我遇到了图形问题:
我创建了一个显示在 google 地图视图上方的 UIPickerView。我想让选择器视图宽度与主视图宽度相匹配。
目前,选择器总是占据视图的 3/4,并且位于左上角:
我尝试这样做:
func pickerView(pickerView: UIPickerView, widthForComponent component: Int) -> CGFloat {
return self.view.bounds.width
}
但这是结果:
这是我想要的:
任何的想法?是否可以在故事板而不是 swift 中设置它?
您可以为 uipickerview 创建约束。 select 选择器视图并设置以下约束。您可以在情节提要中设置约束。
尾随 space:0
前导 Space :0
巴顿 Space:0
https://www.raywenderlich.com/115444/auto-layout-tutorial-in-ios-9-part-2-constraints
你的问题不是组件的宽度,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)
}
我是 iOS 开发的新手,我遇到了图形问题: 我创建了一个显示在 google 地图视图上方的 UIPickerView。我想让选择器视图宽度与主视图宽度相匹配。 目前,选择器总是占据视图的 3/4,并且位于左上角:
我尝试这样做:
func pickerView(pickerView: UIPickerView, widthForComponent component: Int) -> CGFloat {
return self.view.bounds.width
}
但这是结果:
这是我想要的:
您可以为 uipickerview 创建约束。 select 选择器视图并设置以下约束。您可以在情节提要中设置约束。
尾随 space:0 前导 Space :0 巴顿 Space:0
https://www.raywenderlich.com/115444/auto-layout-tutorial-in-ios-9-part-2-constraints
你的问题不是组件的宽度,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)
}