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];
}