Murat OĞUZ

Kendi UISwitch’inizi oluşturun

Bir çalışmam için UISwitcher kullanmam gerekti. Fakat switcher’ın metinlerini değiştirmenin yollarını aradım, çünkü var olan On/Off yazıyordu. Bu obje benim için pek kullanışlı değildi. Ve kendi UISwitcher’ımı yaratmaya karar verdim.


- (void)viewDidLoad

{

[super viewDidLoad];

NSArray *array = [[NSArray alloc]initWithArray:[[[[[stockStatus subviews]lastObject]subviews]objectAtIndex:0]subviews]];

UIImageView *imgswitch = [[UIImageView alloc]init];

imgswitch =((UIImageView *)[[[[stockStatus subviews]lastObject]subviews]objectAtIndex:0]);
[imgswitch setImage:[UIImage imageNamed:@"StokOn.png"]];

imgswitch =((UIImageView *)[[[[[[stockStatus subviews]lastObject]subviews]objectAtIndex:1]subviews]objectAtIndex:1]);
[imgswitch setImage:[UIImage imageNamed:@"StokSwitch.png"]];

imgswitch =((UIImageView *)[[[[[[stockStatus subviews]lastObject]subviews]objectAtIndex:1]subviews]objectAtIndex:1]);
[imgswitch setImage:[UIImage imageNamed:@"StokBackgroundYazi.png"]];

imgswitch =((UIImageView *)[[[[[[stockStatus subviews]lastObject]subviews]objectAtIndex:1]subviews]objectAtIndex:0]);
[imgswitch setImage:[UIImage imageNamed:@"StokBackground.png"]];

}

-(IBAction) valueChanged{

UIImageView *imgswitch = [[UIImageView alloc]init];

imgswitch =((UIImageView *)[[[[stockStatus subviews]lastObject]subviews]objectAtIndex:0]);

if (stockStatus.on) {
[imgswitch setImage:[UIImage imageNamed:@"StokOn.png"]];
}
else{
[imgswitch setImage:[UIImage imageNamed:@"StokOff.png"]];
}
}

UISwitch objesinde 2 adet subviews bulunmakta, bunlardan ilki UISwitch’in ilk yüklendiği(UIImageView) hali yer almakta, diğer subview’in altında da 3 tane UIImageView yer almaktadır, bu imageview’lerde ise switch ederkenki resimleri yer almaktadır. viewDidLoad method’unda bu resimleri kendi resimlerinizle düzenlerseniz, istediğiniz sonucu alabilirsiniz.

ValueChanged methodunda ise switch’in Value Changed action’ına bağlayıp on veya off iken ki halini set etmeniz yeterli olacaktır.

İlgili dosyaları buradan erişebilirsiniz (Tasarımsal olarak kötü olabilir, kusura bakmayın :)).

Scroll To Top