سؤال

هل هناك إما طريقة لتنفيذ 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];
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top