3
A
回答
3
可以使用的UILabel的UIPicker观点,行之有效上述
6
我不时使用时间是使标题的第一行中的每一列的另外一个技术:
你需要增加当然行数..
4
我显示3个组分,然后使用一个UIView示出每个部件的上方为中心的标题(的UILabel)(你可以很容易地修改本更多或更少的组件):
-(void)labelForDays
{
NSString *strDay = @"Days";
float lblWidth = self.pickerDayHourMin.frame.size.width/self.pickerDayHourMin.numberOfComponents;
float lblXposition = self.pickerDayHourMin.frame.origin.x;
float lblYposition = (self.pickerDayHourMin.frame.origin.y);
UILabel *lblDay = [[UILabel alloc] initWithFrame:CGRectMake(lblXposition,
lblYposition,
lblWidth,
20)];
[lblDay setText:strDay];
[lblDay setTextAlignment:NSTextAlignmentCenter];
[self.view addSubview:lblDay];
}
然后,标签为第二组分
-(void)labelForHours
{
NSString *strHours = @"Hours";
float lblWidth = self.pickerDayHourMin.frame.size.width/self.pickerDayHourMin.numberOfComponents;
float lblXposition = self.pickerDayHourMin.frame.origin.x;
float lblYposition = (self.pickerDayHourMin.frame.origin.y);
UILabel *lblHours;
if (self.pickerDayHourMin.numberOfComponents ==3)
{
lblHours = [[UILabel alloc] initWithFrame:CGRectMake((lblXposition + lblWidth),
lblYposition,
lblWidth,
20)];
}
[lblHours setText:strHours];
[lblHours setTextAlignment:NSTextAlignmentCenter];
[self.view addSubview:lblHours];
}
最后第三组件的上方居中
-(void)labelForMinutes
{
NSString *strMinute = @"Minutes";
float lblWidth = self.pickerDayHourMin.frame.size.width/self.pickerDayHourMin.numberOfComponents;
float lblXposition = self.pickerDayHourMin.frame.origin.x;
float lblYposition = (self.pickerDayHourMin.frame.origin.y);
UILabel *lblMinute;
if (self.pickerDayHourMin.numberOfComponents ==3)
{
lblMinute = [[UILabel alloc] initWithFrame:CGRectMake((lblXposition + lblWidth + lblWidth),
lblYposition,
lblWidth,
20)];
}
[lblMinute setText:strMinute];
[lblMinute setTextAlignment:NSTextAlignmentCenter];
[self.view addSubview:lblMinute];
}
+0
这种工作和非常可控。足够用于这种微不足道的用例。 谢谢@greentor –
4
斯威夫特版本的标签,基于@ greentor的答案一些改进:
var labelTexts = ["Months", "Weeks", "Days", "Hours", "Minutes"]
override func viewDidAppear(animated: Bool) {
let labelWidth = itemPicker.frame.width/CGFloat(itemPicker.numberOfComponents)
for index in 0..<labelTexts.count {
let label: UILabel = UILabel.init(frame: CGRectMake(itemPicker.frame.origin.x + labelWidth * CGFloat(index), 0, labelWidth, 20))
label.text = labelTexts[index]
label.textAlignment = .Center
itemPicker.addSubview(label)
}
注意,如果调用viewWillAppear中或更早,因为UIPickerView不会知道在这一点上它的框架尺寸但,这可能无法正常工作。
相关问题
- 1. 将图像图标添加到UIPickerView行
- 2. 添加到UIPickerView
- 3. 添加UIPickerView和UIToolBar到UIActionSheet的问题
- 4. 将标题添加到Http标题
- 5. 将标题/标题添加到telerik Radgrid?
- 6. 将标题添加到UITextView
- 7. 将标题添加到PreferenceActivity
- 8. UIPickerView添加到uitableviewcontroller.view将不会旋转
- 9. 将标题标签添加到Zend_Form_Element_MultiCheckbox
- 10. UIPickerView列标题
- 11. 将标题添加到ListView行或将标题附加到项目组
- 12. 将标题添加到jqdialog确认框
- 13. 将按钮添加到标题右侧
- 14. 将标题添加到<dl>
- 15. 将标题添加到android活动
- 16. 将javascript添加到php标题
- 17. 将标题和文本添加到UITextView
- 18. Python将标题添加到urlparse
- 19. 如何将标题添加到seaborn boxplot
- 20. 如何将unicode添加到python标题?
- 21. 将标题添加到现有控件
- 22. 将标题添加到Charles的请求
- 23. 将标题和图像添加到NSStatusItem
- 24. 将标题属性添加到jsf panelGroup?
- 25. 如何将标题添加到GridView?
- 26. 将标题添加到Word文档?
- 27. 将标题栏添加到JFrame(Linux)
- 28. 将UIImage添加到EKEvent标题
- 29. 将URL添加到Photoswipe图像标题
- 30. Poco HTTPClientSession将标题添加到HTTPRequest
这不是一个好的解决方案,因为当您滚动顶行消失 – Honey