【发布时间】:2017-01-22 23:09:42
【问题描述】:
我有一个UIPickerView,它延伸到autolayout 和storyboards 中的前视图和尾视图。
我想在UIPickerView 的每个部分旁边添加一个UILabel,使10 px 远离选择器部分。
现在我正尝试像这样以编程方式这样做:
var hourXVal = pickerWidth - 330.0
var minXVal = pickerWidth - 190.0
var secXVal = pickerWidth - 50.0
if(self.view.frame.width == 320)
{
hourXVal = pickerWidth - 250.0
minXVal = pickerWidth - 140.0
secXVal = pickerWidth - 35.0
}
else if(self.view.frame.width == 414)
{
hourXVal = pickerWidth - 330.0
minXVal = pickerWidth - 190.0
secXVal = pickerWidth - 50.0
}
let hourLabel = UILabel(frame: CGRect(x:hourXVal, y:88, width: 100, height:40))
let minuteLabel = UILabel(frame: CGRect(x:minXVal, y:88, width: 100, height:40))
let secondLabel = UILabel(frame: CGRect(x:secXVal, y:88, width: 100, height:40))
hourLabel.text = "Hours"
minuteLabel.text = "Minutes"
secondLabel.text = "Sec"
self.timePickerView.addSubview(hourLabel)
self.timePickerView.addSubview(minuteLabel)
self.timePickerView.addSubview(secondLabel)
但是,self.view.frame.width 报告iPhone SE 和iPhone 6 的宽度相同,即使 6 UI 显示为这样(而在 SE 和 5 上看起来很好):
有没有更好的方法来做到这一点?如何?
【问题讨论】:
标签: ios swift autolayout uilabel uipickerview