更改UIButton的图像选择或取消选择
我想在我的iOS应用程序用户可以选择一些领域上点击UIButton
。更改UIButton的图像选择或取消选择
我当用户选择的UIButton
点击领域想,按钮的形象应该改变,并打开我的MMPickerView
,当用户再次点击UIButton
应该得到选择,而在UIButton
显示一张图像,此时不要打开MMPickerview
。
这是我的代码:
- (IBAction)showPickerViewButtonPressed:(id)sender {
if((_button.selected = !_button.selected))
{
UIImage *bimage=[UIImage imageNamed: @"play.jpg"];
[_button setImage:bimage forState:UIControlStateNormal];
}
else
{
[MMPickerView showPickerViewInView:self.view
withStrings:_stringsArray
withOptions:@{MMbackgroundColor: [UIColor blackColor],
MMtextColor: [UIColor whiteColor],
MMtoolbarColor: [UIColor blackColor],
MMbuttonColor: [UIColor whiteColor],
MMfont: [UIFont systemFontOfSize:18],
MMvalueY: @3,
MMselectedObject:_selectedString}
completion:^(NSString *selectedString) {
_label.text = selectedString;
_selectedString = selectedString;
}];
}
}
关于设置图像的按钮使用的setBackground图片代替setimage
[<buttoninstane> setBackgroundImage:<#(UIImage *)#> forState:UIControlStateNormal];
[<buttoninstane> setBackgroundImage:<#(UIImage *)#> forState:UIControlStateSelected];
写在按钮被宣布上述代码
而且在按钮动作中使用下面编辑的代码
- (IBAction)showPickerViewButtonPressed:(id)sender {
if(_button.selected){
[_button setSelected:NO];
}
else{
[_button setSelected:YES];
[MMPickerView showPickerViewInView:self.view
withStrings:_stringsArray
withOptions:@{MMbackgroundColor: [UIColor blackColor],
MMtextColor: [UIColor whiteColor],
MMtoolbarColor: [UIColor blackColor],
MMbuttonColor: [UIColor whiteColor],
MMfont: [UIFont systemFontOfSize:18],
MMvalueY: @3,
MMselectedObject:_selectedString}
completion:^(NSString *selectedString) {
_label.text = selectedString;
_selectedString = selectedString;
}];
}
}
UIImage *bimage=[UIImage imageNamed: @"play_select.jpg"]; [_button setImage:bimage forState:UIControlStateSelected]; [_button setImage:bimage forState:UIControlStateHighlighted];
,其中按钮被宣布
要设置不同按钮状态不同的图像使用 - (void)setImage:(UIImage *)image forState:(UIControlState)state;
在代码中的if语句(_button.selected = !_button.selected)
永远是真实的,所以其他部分将永远不会运行。
我想你并没有改变按钮的状态。试试这个......
- (IBAction)showPickerViewButtonPressed:(id)sender
{
if ([_button isSelected])
{
_button.selected=NO;
}
else
{
_button.selected=YES; // change button's state
[MMPickerView showPickerViewInView:self.view
withStrings:_stringsArray
withOptions:@{MMbackgroundColor: [UIColor blackColor],
MMtextColor: [UIColor whiteColor],
MMtoolbarColor: [UIColor blackColor],
MMbuttonColor: [UIColor whiteColor],
MMfont: [UIFont systemFontOfSize:18],
MMvalueY: @3,
MMselectedObject:_selectedString}
completion:^(NSString *selectedString) {
_label.text = selectedString;
_selectedString = selectedString;
// _button.selected=YES; change button's state here If you want to change state after completion.
}];
}
}
然后在你声明你的按钮的地方写这段代码。
UIImage *bSelectedimage=[UIImage imageNamed: @"your image name for selected state"];
UIImage *bimage=[UIImage imageNamed: @"your image name for default state"];
[_button setImage:bSelectedimage forState:UIControlStateSelected];
[_button setImage:bimage forState:UIControlStateNormal];
斯威夫特4
,其中按钮被宣布
let bimage = UIImage(named: "play_select.jpg") button.setImage(bimage, for: .selected) button.setImage(bimage, for: .highlighted)
@拉梅什由于添加这个我已经申请你的代码,但它不符合我requirements.Same事情正在发生。 – Daljeet 2014-10-10 07:05:14
编辑代码,现在检查 – 2014-10-10 08:47:01