Swiftでドロップダウンメニューを作成するライブラリは何ですか?私はXcodeとSwift言語が初めてなので、誰でもドロップダウンリストを迅速に実装する方法を教えてください。
「ドロップダウンメニュー」は、Webコントロール/用語です。 iOSにはこれらがありません。 UIPopoverController
を見る方が良いかもしれません。 PopoverControllersの洞察については、このチュートリアルをご覧ください
(Swift 3)テキストボックスとuipickerviewをストーリーボードに追加し、デリゲートとデータソースをuipickerviewに追加し、デリゲートをテキストボックスに追加します。ビデオでフォローしてください 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"]
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 don't want the users to se the keyboard type:
textField.endEditing(true)
}
}
}
残念ながら、iOS9でUIPopoverController
を適用しようとすると、非推奨のクラス警告が表示されます。代わりに、目的のビューのUIModalPresentationPopover
プロパティを設定して同じ結果を得る必要があります。
ポップオーバー
水平に規則的な環境で、コンテンツがポップオーバービューで表示されるプレゼンテーションスタイル。背景のコンテンツは淡色表示され、ポップオーバーの外側をタップするとポップオーバーが閉じられます。タップでポップオーバーを閉じたくない場合は、popoverPresentationControllerプロパティから取得できる、関連するUIPopoverPresentationControllerオブジェクトのpassthroughViewsプロパティに1つ以上のビューを割り当てることができます。
水平方向にコンパクトな環境では、このオプションはUIModalPresentationFullScreenと同じように動作します。
IOS 8.0以降で利用可能。
リファレンス: https://developer.Apple.com/documentation/uikit/uiviewcontroller/1621355-modalpresentationstyle
必ずUIPickerViewDataSourceおよびUIPickerViewDelegateプロトコルを使用する必要があります。そうしないと、Swift 3の時点でAppDelegateエラーがスローされます。
また、構文の変更に注意してください。
func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int
今でしょ:
public func numberOfComponents(in pickerView: UIPickerView) -> Int
以下は私のために働いた。
import UIkit
class ViewController: UIViewController, UIPickerViewDataSource, UIPickerViewDelegate {
@IBOutlet weak var textBox: UITextField!
@IBOutlet weak var dropDown: UIPickerView!
var list = ["1", "2", "3"]
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 don't want the users to se the keyboard type:
textField.endEditing(true)
}
}
}
UIPickerviewを使用することは、Appleのヒューマンインターフェイスガイドラインに従って実装する正しい方法です
モバイルサファリでドロップダウンを選択すると、UIPickerviewが表示され、ドロップダウンアイテムを選択できます。
代わりに
使用できますUIPopoverController iOS 9は非推奨ですが、UIModalPresentationPopover表示したいビューの
UIActionsheetを使用して項目を表示できますが、UIAlertViewControllerを選択し、UIActionSheetstyleを選択して、前者が非推奨になったことを示します最新バージョン