Co to jest biblioteka do rozwijanego menu w szybkim tempie? Jestem nowy w Xcode i języku Swift, więc czy ktoś może polecić mi jak zaimplementować listę rozwijaną w szybkim tempie?Tworzenie listy rozwijanej za pomocą Swift?
Odpowiedz
"Menu rozwijane" to kontrola/termin sieci. W systemie iOS tego nie mamy. Może lepiej wyglądać na UIPopoverController
. Sprawdź ten samouczek na trochę wgląd do PopoverControllers
Niestety, jeśli szukasz, aby zastosować UIPopoverController
w iOS9, dostaniesz ostrzeżenie przestarzałej klasy. Zamiast tego musisz ustawić pożądaną właściwość widoku, aby uzyskać ten sam wynik.
Popover
W poziomo regularnego środowiska, styl prezentacji których zawartość jest wyświetlana w widoku popover. Zawartość tła jest przyciemniona i stuknięcia poza popover powodują, że popover zostanie odrzucony jako . Jeśli nie chcesz, aby dotknięcia odrzuciły popover, możesz przypisać jeden lub więcej widoków do właściwości passthroughViews powiązanego obiektu UIPopoverPresentationController skojarzonego z , który możesz uzyskać z właściwości popoverPresentationController.
W poziomym kompaktowym środowisku ta opcja zachowuje się tak samo jak UIModalPresentationFullScreen.
Dostępne w systemie iOS 8.0 i nowszych wersjach.
Dzięki za wskazanie braku zgodności z UIPopoverController –
(Swift 3) Dodaj pole tekstowe i UIPickerView do serii ujęć, a następnie dodać delegata i źródło danych do UIPickerView i dodać delegata do pola tekstowego. Śledź swoją pomoc https://youtu.be/SfjZwgxlwcc
import UIKit
class ViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource, UITextFieldDelegate {
@IBOutlet weak var textBox: UITextField!
@IBOutlet weak var dropDown: UIPickerView!
var list = ["1", "2", "3"]
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
public func numberOfComponents(in pickerView: UIPickerView) -> Int{
return 1
}
public func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int{
return list.count
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
self.view.endEditing(true)
return list[row]
}
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
self.textBox.text = self.list[row]
self.dropDown.isHidden = true
}
func textFieldDidBeginEditing(_ textField: UITextField) {
if textField == self.textBox {
self.dropDown.isHidden = false
//if you dont want the users to se the keyboard type:
textField.endEditing(true)
}
}
}
Musisz mieć pewność, aby korzystać z protokołów UIPickerViewDataSource i UIPickerViewDelegate lub będzie rzucać błąd AppDelegate jako SWIFT 3
Proszę również zwrócić uwagę na zmiany w składni:
func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int
jest teraz:
public func numberOfComponents(in pickerView: UIPickerView) -> Int
Poniższy dział pracował dla mnie.
import UIkit
class ViewController: UIViewController, UIPickerViewDataSource, UIPickerViewDelegate {
@IBOutlet weak var textBox: UITextField!
@IBOutlet weak var dropDown: UIPickerView!
var list = ["1", "2", "3"]
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
public func numberOfComponents(in pickerView: UIPickerView) -> Int{
return 1
}
public func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int{
return list.count
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
self.view.endEditing(true)
return list[row]
}
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
self.textBox.text = self.list[row]
self.dropDown.isHidden = true
}
func textFieldDidBeginEditing(_ textField: UITextField) {
if textField == self.textBox {
self.dropDown.isHidden = false
//if you dont want the users to se the keyboard type:
textField.endEditing(true)
}
}
}
Korzystanie UIPickerView jest właściwa droga, aby wdrożyć go zgodnie z wytycznymi interfejsu HID Apple'a
Jeśli wybierzesz rozwijanej w safari mobilnych pokaże UIPickerView pozwolić użyj wybierz rozwijane elementy.
Alternatywnie
można użyć UIPopoverController do iOS 9 jak jego przestarzałe ale lepiej trzymać się z UIModalPresentationPopover widzenia chcesz o Informacja oraz
można użyć UIActionsheet, aby wyświetlić elementy, ale lepiej użyć UIAlertViewController i wybierz UIActionSheetstyle aby pokazać jak dawna jest przestarzała w najnowszych wersjach
Sprawdź ten link, może to pomóc http://code4app.net/category/menu – aBilal17
spróbować tego https: // www .dropbox.com/s/l8rflh1oygtcerh/single% 20dropdown.txt? dl = 0 –