Ders 7 – UIPickerView Kullanımı

0
1414

Merhaba arkadaşlar. Bu dersimizde UIPickerView nesnesini inceleyeceğiz.

UIPickerView kullanıcının birçok seçenek arasından bir tanesini seçmesini sağlayan nesnedir.

Şimdi bir UIPickerView Nesnesi oluşturarak başlayalım.
- (void)viewDidLoad{
[super viewDidLoad];
self.myPicker = [[UIPickerView alloc] init];
self.myPicker.center = self.view.center;
[self.view addSubview:self.myPicker];
}

Burada sadece UIPickerView nesnesini oluşturup onu bulunmuş olduğu view içerisinde ortaladık. Bu kodu çalıştırdığımızda ekranda sadece boş bir UIPickerView görünür. Bunun nedeni henüz UIPickerView nesnesini doldurmamış olmamızdır. Bu nesnenin içeriğini veri ile doldurmak için UIViewController nesnesinin UIPickerViewDataSource protokolünü implement etmesi gerekmektedir. .h dosyamıza bu protokolü aşağıdaki gibi ekleyelim
@interface ViewController ()

Uygulamayı şimdi çalıştırdığınızda uyarı verdiğini göreceksiniz. Bunun sebebi implement edilen UIPickerViewDataSource nesnesinin metodlarını yazmamış olmamızdır. Şimdi bu metodları ekleyelim.

– (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView : Bu metod ile pickerView nesnesi içerisinde kaç tane bileşen olması gerektiğini söylüyoruz.

– (NSInteger) pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component : Bu metod ise pickerView nesnesi içerisinde kaç tane eleman görüntüleceğini söylüyor.

Bu iki metodu ekleyip uygulamamızı çalıştırdığımızda yine yanlış giden birşeyler olduğunu göreceksiniz. UIPickerView nesnesi istediğimiz görüntüyü vermeyecektir. Bunun nedeni UIPickerView nesnemizin henüz ne görüntüleyeceğini bilmemesidir. UIPickerView nesnesi içerisinde ne görüntüleyeceğimizi söyleyen metod UIPickerViewDelegate protokolünün aşağıdaki metodudur.

– (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component

Şimdi tüm bu bilgileri bir araya getirip çalışan bir UIPickerView nesnesi oluşturalım. .m dosyamızın son hali aşağıdaki gibi olacaktır.

- (void)viewDidLoad {

[super viewDidLoad];

self.myPicker = [[UIPickerView alloc] init];
self.myPicker.center = self.view.center;
self.myPicker.delegate = self;
self.myPicker.dataSource = self;
[self.view addSubview:self.myPicker];
}

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {

return 10;
}

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {

return 1;
}

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {

return [NSString stringWithFormat:@"Satır No : %ld", (long)row + 1];
}

Bu yazımızda UIPickerView nesnesini delegate ve datasource metodlarını inceledik. Umarım faydalı bir yazı olmuştur.

Herkese bol şans.

HENÜZ YORUM YOK

CEVAP VER