enter image description here我的要求是向用户显示用户的所有选择选项,以便他可以立即看到所有选项,然后就可以选择那些就像在android中使用微调器视图一样。目前我正在使用UI选择器视图。我正在附上它的屏幕截图。我想要一个微调器或者希望拾取器视图同时显示10个项目,它们当前显示三个相同的高度。这是我的代码:
func pickerView(_ pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusing view: UIView?) -> UIView {
var myString = view as! UILabel!
var myStringLength = 0
if( view == nil) {
myString = UILabel()
}
myString?.textAlignment = .center
var rowText:String
if(pickerView==District){
rowText=districts[row]
}
else if(pickerView==block)
{
rowText=blocks[row]
}
else if(pickerView==management)
{
rowText=managements[row]
}
else
{
rowText=categories[row]
}
var attributedRowText = NSMutableAttributedString(string: rowText)
var attributedRowTextLength = attributedRowText.length
attributedRowText.addAttribute(NSForegroundColorAttributeName, value: UIColor.blue, range: NSRange(location: 0, length: attributedRowTextLength))
attributedRowText.addAttribute(NSFontAttributeName, value: UIFont(name: "Helvetica", size: 8.0)!, range: NSRange(location: 0 ,length:attributedRowTextLength))
myString!.attributedText = attributedRowText
return myString!
}
答案 0 :(得分:0)
cocoatouch框架中没有像spinner那样的东西。 您最多可以使用UItableView
进行自定义实现或者您也可以使用NIDropdown之类的内容来帮助您实施。
答案 1 :(得分:0)
您可以使用表格视图作为下拉列表:
subCategoryTable是表名。按下该下拉按钮创建此表。这里的subCatgBtn就是btn点击后写这段代码。
subCategoryTable.frame = CGRectMake(self.subCatgBtn.frame.origin.x, self.subCatgBtn.frame.origin.y + self.subCatgBtn.frame.size.height, self.subCatgBtn.frame.size.width,CGFloat(numberofrows * 2));
subCategoryTable.delegate = self
subCategoryTable.dataSource = self
subCategoryTable.tag = 2
//subCategoryTable.rowHeight = self.subCatgBtn.frame.size.height
subCategoryTable.registerClass(UITableViewCell.self, forCellReuseIdentifier: "cell")//this is needed when you use custom cell otherwise no need
subCategoryTable.separatorColor = UIColor.lightGrayColor()
subCategoryTable.allowsSelection = true
self.view.addSubview(subCategoryTable)
CellforrowIndex:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
// var cell = tableView.dequeueReusableCellWithIdentifier("cell")!
if tableView.tag == 2
{
let cell = tableView.dequeueReusableCellWithIdentifier("cell")! as UITableViewCell
//do whatever you want to show.
}
}
numberofrows方法:
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if tableView.tag == 2
{
districts.count
}
}
并且在Didselect方法上只需在该按钮上设置您选择的名称。
我不知道您的UI如何设计,您可以使用这个作为下拉列表,它会在您单击该按钮时动态创建。