【问题标题】:iPhone UIButton with UISwitch functionality具有 UISwitch 功能的 iPhone UIButton
【发布时间】:2011-01-16 08:15:54
【问题描述】:

有没有一种方法可以使用自定义图形来实现 UISwitch 的开关状态? 或者作为另一种选择,一个具有 UISwitch 功能的 UIButton?

【问题讨论】:

  • 无论谁投票决定将此问题作为完全相同的副本结束,您至少应该提供一条评论,说明它与哪个帖子的副本相同。

标签: iphone uibutton uiswitch


【解决方案1】:

对于编程倾向:

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

【讨论】:

    【解决方案2】:

    要建立在上面 PGB 和 nurne 所说的基础上,在您设置状态并附加一个选择器(事件方法)之后,您需要将此代码放入该选择器中。

    - (IBAction)cost:(id)sender 
    {
        //Toggle current state and save
        self.buttonTest.selected = !self.buttonTest.selected;
    
        /**
         The rest of your method goes here.
         */
    }
    

    【讨论】:

      【解决方案3】:

      将图像设置为在选定状态下显示:

      [button setImage:[UIImage imageNamed:@"btn_graphics"] forState:UIControlStateSelected];
      

      然后在选择器内部进行修饰,设置:

      button.selected = YES;
      

      如果你想取消另一个按钮的选择,设置:

      otherButton.selected = NO;
      

      【讨论】:

        【解决方案4】:

        UIButton 已经支持“切换”功能。

        只需在 Interface Builder 中为“Selected State Configuration”设置不同的图像,然后使用UIButtonselected 属性来切换其状态。

        【讨论】:

        • 点击/选择后恢复正常。这就是我在没有 IB 的情况下所做的。 [favButton setImage:favOff forState:UIControlStateNormal]; [favButton setImage:favOn forState:UIControlStateHighlighted]; [favButton setImage:favOn forState:UIControlStateSelected]; [favButton setBackgroundColor:[UIColor clearColor]]; [self.view addSubview:favButton];
        • 如何让它保持选中状态?我为 UIControlEventTouchUpInside 添加了一个目标,并在处理程序中将我 setSelected 设置为“!button.selected”。只要我按住按钮,它就会变成蓝色,但一旦我“修饰”,它就会变回白色。还是我必须使用图像而不是所选颜色?
        • 在 Interface Builder 中 - 确保为按钮的“默认”和“选定状态”设置图像。
        • 如何开启UIButton切换功能?当点击时它被选中,当不点击时它未被选中。
        • 有没有人注意到,当取消选择 UIButton 时,它会在触摸时改变状态?无论如何在Touch Up Inside上会发生这种情况吗?选择按钮时,它会出现在 Touch Up Inside 上。
        猜你喜欢
        • 2012-04-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-04-05
        • 2011-08-02
        • 1970-01-01
        相关资源
        最近更新 更多