2016-03-25 23 views
1

ihtiyaç duyuyor. Bu yüzden, bu konuda fazla zamanım varmış gibi hissediyorum. UITextField ile bir InputView üzerinden program aracılığıyla yapılan bir UIPickerView var.UITextField InputView, bitmiş bir düğmeye

Sorunum, ilk yanıtlayandan istifa ederken biten düğmenin olması için bu UIPickerView'lara ihtiyacım var!

Gördüğünüz gibi, araç klimasında var weatherToolBar üst kısmına doğru girişimde bulunmuş ve ardından klimToolBar, viewDidLoad bölümünde çağırır.

Yardımı takdir ediyorum. İşte

benim kodudur:

ithalat UIKit

sınıf ViewController: UIViewController, UIPickerViewDataSource, UIPickerViewDelegate {

@IBOutlet weak var climateText: UITextField! 
@IBOutlet weak var environmentText: UITextField! 
@IBOutlet weak var regionText: UITextField! 
@IBOutlet weak var budgetText: UITextField! 

var climatePicker = UIPickerView() 
var environmentPicker = UIPickerView() 
var regionPicker = UIPickerView() 
var budgetPicker = UIPickerView() 

var climateToolBar = UIToolbar() 



//MARK: Arrays for PickerViews 
var climates = ["Hot","Warm","Cold","Anywhere"] 
var environment = ["Beach","City","Mountain","Rural", "Anywhere"] 
var region = ["Central America","Carribean","Europe","North America","South America", "Anywhere"] 
var budget = ["$0-$500","$501-$1000","$1001-$1500","$1501-$2500","$2501 and up"] 


override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 

    climatePicker.tag = 0 
    environmentPicker.tag = 1 
    regionPicker.tag = 2 
    budgetPicker.tag = 3 

    climateText.inputView = climatePicker 
    climateText.inputAccessoryView = climateToolBar 
    environmentText.inputView = environmentPicker 
    regionText.inputView = regionPicker 
    budgetText.inputView = budgetPicker 

    climatePicker.delegate = self 
    environmentPicker.delegate = self 
    regionPicker.delegate = self 
    budgetPicker.delegate = self 

    climatePicker.dataSource = self 
    environmentPicker.dataSource = self 
    regionPicker.dataSource = self 
    budgetPicker.dataSource = self 


    climateToolBar = UIToolbar() 
    climateToolBar.barStyle = UIBarStyle.Default 
    climateToolBar.translucent = true 
    climateToolBar.sizeToFit() 

} 


func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int { 
    return 1 
} 


func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { 
    if climatePicker.tag == 0 { 
     return climates.count 
    } else if environmentPicker.tag == 1 { 
     return environment.count 
    } else if regionPicker.tag == 2 { 
     return region.count 
    } else if budgetPicker.tag == 3 { 
     return budget.count 
    } 
    return 1 
} 

func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? { 
    if pickerView.tag == 0 { 
     return climates[row] 
    } else if pickerView.tag == 1 { 
     return environment[row] 
    } else if pickerView.tag == 2 { 
     return region[row] 
    } else if pickerView.tag == 3 { 
     return budget[row] 
    } 
    return "" 
} 


func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { 
    if pickerView.tag == 0 { 
     climateText.text = climates[row] 
    } else if pickerView.tag == 1 { 
     environmentText.text = environment[row] 
    } else if pickerView.tag == 2 { 
     regionText.text = region[row] 
    } else if pickerView.tag == 3 { 
     budgetText.text = budget[row] 
    } 
} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 

}

cevap

4

böyle ekle:

let pickerView = UIPickerView(frame: CGRectMake(0, 200, view.frame.width, 300)) 
pickerView.backgroundColor = .whiteColor() 
pickerView.showsSelectionIndicator = true 

let toolBar = UIToolbar() 
toolBar.barStyle = UIBarStyle.Default 
toolBar.translucent = true 
toolBar.tintColor = UIColor(red: 76/255, green: 217/255, blue: 100/255, alpha: 1) 
toolBar.sizeToFit() 


let doneButton = UIBarButtonItem(title: "Done", style: UIBarButtonItemStyle.Bordered, target: self, action: "donePicker") 
let spaceButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace, target: nil, action: nil) 
let cancelButton = UIBarButtonItem(title: "Cancel", style: UIBarButtonItemStyle.Bordered, target: self, action: "canclePicker") 

toolBar.setItems([cancelButton, spaceButton, doneButton], animated: false) 
toolBar.userInteractionEnabled = true 

textField.inputView = pickerView 
textField.inputAccessoryView = toolBar 
+0

Bu kodu bir süreliğine başka bir dizede gördüm ve Im'e hızlıca nasıl değer katacağımı bilmiyorum. – blakejet1

+0

ayrıca, araç çubuğunun görünümün yukarısı bölümünün üzerinde var mı? – blakejet1

+0

evet yapabilirsin, ama bu bir sabit olduğu için 'izin' olmalıdır. – iAnurag