インターフェイスファイルにこれがあります:
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController
<UIPickerViewDataSource, UIPickerViewDataSource>
// PickerView Array
@property (strong, nonatomic) NSArray *pickerNames;
@property (strong, nonatomic) NSArray *pickerValues;
@property (strong, nonatomic) IBOutlet UIPickerView *picker;
- (IBAction)buttonSelectPicker;
@end
そして私は実装ファイルにこれを持っています:
- (void)viewDidLoad
{
[super viewDidLoad];
// PickerView Array
_pickerNames = @[@"Data1", @"Data2", @"Data3", @"Data4", @"Data5"];
_pickerValues = @[@"val1", @"val2", @"val3", @"val4", @"val5"];
_picker.frame = CGRectMake(0, 1000, 320, 216);
}
これらのコードはすべて、私の iPod (iOS 6.1.3) で完全に動作しますが、実際にはもっとやりたいことに問題があります...
アプリが初めてロードされると、UIPickerView は非表示になります (画面領域の外側)。この行 (on ) を追加してみました
viewDidLoad
が、うまくいきませんでした。_picker.frame = CGRectMake(0, 1000, 320, 216);
ユーザーが
buttonSelectPicker
ボタンをタップすると、UIPickerView が表示されます。このコード行も機能しませんでした:- (IBAction)buttonSelectPicker { [UIView beginAnimations:nil context:NULL]; [UIView setAnimationDuration:0.3]; _pickerviewContainer.frame = CGRectMake(0, 289, 320, 216); [UIView commitAnimations]; }
ユーザーが UIPickerView 領域外の任意の場所をタップすると、UIPickerView が非表示になります。キーボードを閉じるためのこのコードがありますが、 UIPickerView を閉じるように変更する方法がわかりません:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { for (UIView * txt in self.view.subviews){ if ([txt isKindOfClass:[UITextField class]]) { [txt resignFirstResponder]; } } }
ありがとうございました...