IOS UISlider Kullanımı
Bu yazımda IOS UIControlların altında bulunan UISlider kitinin basit olarak bir örneğini yapacağız inşallah.Sliderımız 0 - 50 arası kırmızı renk alsın, 50 - 100 arası yeşil rengini alısın. Böyle küçük bir örnek yapalım.
Yapmamız gereken projemizin dosyalarından ViewController.m olanı açıyoruz ve içerisine kodlarımızı yazmaya başlıyoruz.
İlk olarak kullanacağımız değişkenlerimizi @interface ViewControllerımıza tanımlıyoruz.
@interface ViewController (){
@property (strong, nonatomic) IBOutlet IUSlider *slider;
//Bir tanede label atayalım sliderımızın o andaki değerini ekranımızda görelim
@property (strong, nonatomic) IBOutlet IULabel *label;
}
Evet değişkenlerimizi tanımladık sıra geldi addSlider metodumuzu yazmaya.
Metodumuzu @impementation ViewController içine yazıyoruz.
-(void) addSlider{
//UISliderdan örnek alıyoruz ve Ekrandaki yerini belirliyoruz
self.slider = [[UISlider alloc] initWithFrame:CGRectMake(50,200,300,25)];
//Aynı işlemi Labelimiz içinde yapalım
self.label = [[UILabel alloc] initWithFrame :CGRectMake(195,150,250,18)];
//Şimdi ekranda gözükmesini sağlayalım
[self.view addSubview:self.slider];
[self.view addSubview:self.label];
//Labelimize başlanğıç değerini verelim
self.label.text =@"0";
//Sliderımıza başlangıç rengini atayalım
self.slider.tintColor =[UIColor redColor];
//Sliderımızın şimdi ise min ve max değerlerini verelim
self.slider.minimumValue =0;
self.slider.maximumValue =100;
//Şimdi Sliderımızın changed eventını atayalım
[self.slider addTarget:self action:@selector(sliderChanged:)
forControlEvents:UIControlEventValueChanged];
}
Şimdi ise Eventımızı yazalım.
-(IBAction) sliderChanged:(id)sender{
//Ne yapıyorduk 0-50 arası kırmızı 50-100 arası yeşildi
//Hemen bir if atıyoruz ve şartımıza göre yazıyoruz
if (self.slider.value <50) {
//Aynı zamanda değeri ekrana yazdıralım
self.label.text =[NSString stringWithFormat:@"%i",(int)self.slider.value];
self.slider.tintColor = [UIColor redColor];
}else{
self.label.text =[NSString stringWithFormat:@"%i",(int)self.slider.value];
self.slider.tintColor = [UIColor greenColor];
}
Son olarak viewDidLoadımıza addSlider Metodumuzu ekleyelim.
-(void)viewDidLoad {
[super viewDidLoad];
//Slider Metodumuz ekliyoruz
[self addSlider];
}
Resimde ekleyelim. Bunun için yapmamız gereken addSlider metoduna ve sliderChanged eventimıza şu kodları yazmamız ve kullanıcağımız resimleri proje dosyamıza atmamız yeterli olucaktır.
addSlider Metodumuz..
-(void) addSlider{
//....
//Resimlerimizi alalım
UIImage *minImage = [UIImage imageNamed:@"lowsound.png" ];
//minimundaki resmine atalım yani sol tarafta duracak olan resim
[self.slider setMinimumValueImage:minImage ];
UIImage *maxImage = [UIImage imageNamed:@"fullsound.png" ];
[self.slider setMaximumValueImage:maxImage ];
}
Son olarakda sliderChanged eventimizin son hali.
-(IBAction)sliderChanged:(id)sender{
if (self.slider.value == 0) {
//Eğer sıfıra gelmişse mute resmimiz gözüksün
UIImage *muteImage = [UIImage imageNamed:@"mutesound.png" ];
[self.slider setMinimumValueImage:muteImage ];
}
else if(self.slider.value <50) {
//burada tekrar yapma sebebimiz resim mute olduğu zaman tekrar
//eski haline lowsound.png haline dönsün
UIImage *minImage = [UIImage imageNamed:@"lowsound.png" ];
[self.slider setMinimumValueImage:minImage ];
self.slider.tintColor = [UIColor redColor];
}else{
self.slider.tintColor = [UIColor greenColor];
}
self.label.text =[NSString stringWithFormat:@"%i",(int)self.slider.value];
}