質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Objective-C

Objective-Cはオブジェクト指向型のプログラミング言語のひとつです。C言語をベースにSmalltalkが取り入れられています。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

2回答

2934閲覧

[Swift] このUIPickerViewのサブクラスであらかじめ指定した値をセットしておくにはどうしたらよいでしょうか?

7hikolin

総合スコア124

Objective-C

Objective-Cはオブジェクト指向型のプログラミング言語のひとつです。C言語をベースにSmalltalkが取り入れられています。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2015/06/18 06:54

リンクのものを使ってUIPickerViewを作っています。

https://github.com/tottokotkd/PopUpPickerView
http://qiita.com/tottokotkd/items/b979d5e991b29431346c

それで、このViewを開いたときに、任意の値が選択されているようにしたいです。宜しくおねがします。

lang

1import UIKit 2class ViewController: UIViewController, PopUpPickerViewDelegate { 3 var pickerView: PopUpPickerView! 4 let array = ["test1", "test2", "test3", "test4", "test5"] 5 6 override func viewDidLoad() { 7 super.viewDidLoad() 8 9 pickerView = PopUpPickerView() 10 pickerView.delegate = self 11 if let window = UIApplication.sharedApplication().keyWindow { 12 window.addSubview(pickerView) 13 } else { 14 self.view.addSubview(pickerView) 15 } 16 17 let button = UIButton.buttonWithType(UIButtonType.ContactAdd) as UIButton 18 button.frame = CGRectMake(50, 100, 30, 30); 19 button.addTarget(self, action: "showPicker", forControlEvents: UIControlEvents.TouchDown) 20 self.view.addSubview(button) 21 } 22 func showPicker() { 23 pickerView.showPicker() 24 } 25 // for delegate 26 func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int { 27 return 3 28 } 29 func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { 30 return array.count 31 } 32 func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String! { 33 return array[row] 34 } 35 func pickerView(pickerView: UIPickerView, didSelect numbers: [Int]) { 36 println(numbers) 37 } 38}

lang

1class PopUpPickerView: UIView { 2 var pickerView: UIPickerView! 3 var pickerToolbar: UIToolbar! 4 var toolbarItems: [UIBarItem]! 5 6 var delegate: PopUpPickerViewDelegate? { 7 didSet { 8 pickerView.delegate = delegate 9 } 10 } 11 private var selectedRows: [Int]? 12 13 // MARK: Initializer 14 override init() { 15 super.init() 16 initFunc() 17 } 18 override init(frame: CGRect) { 19 super.init(frame: frame) 20 initFunc() 21 } 22 required init(coder aDecoder: NSCoder) { 23 super.init(coder: aDecoder) 24 initFunc() 25 } 26 private func initFunc() { 27 let screenSize = UIScreen.mainScreen().bounds.size 28 self.backgroundColor = UIColor.blackColor() 29 30 pickerToolbar = UIToolbar() 31 pickerView = UIPickerView() 32 toolbarItems = [] 33 34 pickerToolbar.translucent = true 35 pickerView.showsSelectionIndicator = true 36 pickerView.backgroundColor = UIColor.whiteColor() 37 38 self.bounds = CGRectMake(0, 0, screenSize.width, 260) 39 self.frame = CGRectMake(0, screenSize.height, screenSize.width, 260) 40 pickerToolbar.bounds = CGRectMake(0, 0, screenSize.width, 44) 41 pickerToolbar.frame = CGRectMake(0, 0, screenSize.width, 44) 42 pickerView.bounds = CGRectMake(0, 0, screenSize.width, 216) 43 pickerView.frame = CGRectMake(0, 44, screenSize.width, 216) 44 45 let space = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FixedSpace, target: nil, action: nil) 46 space.width = 12 47 let cancelItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Cancel, target: self, action: "cancelPicker") 48 let flexSpaceItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace, target: self, action: nil) 49 let doneButtonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Done, target: self, action: Selector("endPicker")) 50 toolbarItems! += [space, cancelItem, flexSpaceItem, doneButtonItem, space] 51 52 pickerToolbar.setItems(toolbarItems, animated: false) 53 self.addSubview(pickerToolbar) 54 self.addSubview(pickerView) 55 } 56 func showPicker() { 57 if selectedRows == nil { 58 selectedRows = getSelectedRows() 59 } 60 let screenSize = UIScreen.mainScreen().bounds.size 61 UIView.animateWithDuration(0.2) { 62 self.frame = CGRectMake(0, screenSize.height - 260.0, screenSize.width, 260.0) 63 } 64 } 65 func cancelPicker() { 66 hidePicker() 67 restoreSelectedRows() 68 selectedRows = nil 69 } 70 func endPicker() { 71 hidePicker() 72 delegate?.pickerView?(pickerView, didSelect: getSelectedRows()) 73 selectedRows = nil 74 } 75 private func hidePicker() { 76 let screenSize = UIScreen.mainScreen().bounds.size 77 UIView.animateWithDuration(0.2) { 78 self.frame = CGRectMake(0, screenSize.height, screenSize.width, 260.0) 79 } 80 } 81 private func getSelectedRows() -> [Int] { 82 var selectedRows = [Int]() 83 for i in 0..<pickerView.numberOfComponents { 84 selectedRows.append(pickerView.selectedRowInComponent(i)) 85 } 86 return selectedRows 87 } 88 private func restoreSelectedRows() { 89 for i in 0..<selectedRows!.count { 90 pickerView.selectRow(selectedRows![i], inComponent: i, animated: true) 91 } 92 } 93} 94 95@objc 96protocol PopUpPickerViewDelegate: UIPickerViewDelegate { 97 optional func pickerView(pickerView: UIPickerView, didSelect numbers: [Int]) 98}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

「selectRow(_ row: Int, inComponent component: Int, animated animated: Bool)」を使ってください。

投稿2015/06/18 11:20

Stripe

総合スコア2183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

array[0]の値を任意の値にすればいいんじゃないでしょうか。

投稿2015/06/18 11:04

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問