iPhone uibratton مع وظيفة UISwitch
سؤال
هل هناك إما طريقة لتنفيذ UISwitch مع رسومات مخصصة لدورات التبديل؟ أو كبديل في الاتجاه الآخر ، uibutton مع وظيفة UISwitch؟
المحلول
UIButton
يدعم بالفعل وظيفة "التبديل".
ما عليك سوى تعيين صورة مختلفة في Builder للواجهة لـ "تكوين الحالة المحددة" ، واستخدم ملف selected
ممتلكات UIButton
لتبديل حالتها.
نصائح أخرى
قم بتعيين الصورة لتظهر على الحالة المحددة:
[button setImage:[UIImage imageNamed:@"btn_graphics"] forState:UIControlStateSelected];
ثم على اتصال داخل المحدد ، قم بتعيين:
button.selected = YES;
إذا كنت تريد أن يلغي هذا اختيار زر آخر ، فقم بتعيين:
otherButton.selected = NO;
للبناء على ما قاله PGB و Nurne أعلاه ، بعد تعيين حالاتك وإرفاق محدد (طريقة الحدث) ، تريد وضع هذا الرمز في هذا المحدد.
- (IBAction)cost:(id)sender
{
//Toggle current state and save
self.buttonTest.selected = !self.buttonTest.selected;
/**
The rest of your method goes here.
*/
}
للميل برمجيا:
-(void) addToggleButton {
CGRect aframe = CGRectMake(0,0,100,100);
UIImage *selectedImage = [UIImage imageNamed:@"selected"];
UIImage *unselectedImage = [UIImage imageNamed:@"unselected"];
self.toggleUIButton = [[UIButton alloc] initWithFrame:aframe];
[self.toggleUIButton setImage:unselectedImage forState:UIControlStateNormal];
[self.toggleUIButton setImage:selectedImage forState:UIControlStateSelected];
[self.toggleUIButton addTarget:self
action:@selector(clickToggle:)
forControlEvents:UIControlEventTouchUpInside];
[self addSubview:self.toggleUIButton];
}
-(void) clickToggle:(id) sender {
BOOL isSelected = [(UIButton *)sender isSelected];
[(UIButton *) sender setSelected:!isSelected];
}
لا تنتمي إلى StackOverflow