UIButton 选中状态改变图片
UIButton selected state change image
我知道这应该很简单,但由于我确实在这里和 google 上四处看了看,但没有让我的代码正常工作,所以我会问。是的,我已经查看了相关问题,但它们不起作用...
我只是想改变按下按钮时的图像。
这是我的头文件:
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController
@property (strong, nonatomic) IBOutlet UIButton *myButton;
@end
还有我的实现文件:
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
[self.myButton setImage:[UIImage imageNamed:@"normal.png"] forState:UIControlStateNormal];
[self.myButton setImage:[UIImage imageNamed:@"selected.png"] forState:UIControlStateSelected];
}
@end
按钮是在 Main.storyBoard 中构建和连接的,我也曾尝试在属性检查器中执行此操作,但两种方法都行不通!
请注意,我不是在寻找如何做高亮状态而是选择。
为什么不尝试将背景图片默认设置为 "normal.png";
[self.mybutton setBackgroundImage:[UIImage imageNamed:@"normal.png"]];
并在执行按钮时切换到"selected.png"。
[self.mybutton setBackgroundImage:[UIImage imageNamed:@"selected.png"]];
您需要在界面生成器中为每个状态设置图像,如果需要,您不需要添加代码:
Select State Config
到 Default
然后选择一张图片
Select State Config
到 Selected
然后选择一张图片
现在测试按钮的每个状态:
您可以对背景图像执行相同的操作,只需 select 参数 "Background"
你有点击按钮的方法吗?如果是,请将其放在下面的行中:
[self.myButton setSelected:YES];
[self.myButton setImage:[UIImage imageNamed:@"selected.png"] forState:UIControlStateSelected];
我相信您需要做的是在点击按钮时将按钮的状态设置为选中。大概是这样的:
-(IBAction)buttonTapped:(id)sender {
if(self.myButton.selected)
[self.mybytton setSelected:NO];
else
[self.mybutton setSelected:YES];
}
在状态配置中的 IB 构建器中更改为您需要的任何图像,并向该按钮添加一个操作,并在其中添加这行代码,如@Aladin 所述。
@IBAction func btnPressed (_ sender: UIButton) {
// If you want to change it for selected state when tapped.
sender.isSelected = !sender.isSelected
}
我知道这应该很简单,但由于我确实在这里和 google 上四处看了看,但没有让我的代码正常工作,所以我会问。是的,我已经查看了相关问题,但它们不起作用...
我只是想改变按下按钮时的图像。
这是我的头文件:
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController
@property (strong, nonatomic) IBOutlet UIButton *myButton;
@end
还有我的实现文件:
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
[self.myButton setImage:[UIImage imageNamed:@"normal.png"] forState:UIControlStateNormal];
[self.myButton setImage:[UIImage imageNamed:@"selected.png"] forState:UIControlStateSelected];
}
@end
按钮是在 Main.storyBoard 中构建和连接的,我也曾尝试在属性检查器中执行此操作,但两种方法都行不通!
请注意,我不是在寻找如何做高亮状态而是选择。
为什么不尝试将背景图片默认设置为 "normal.png";
[self.mybutton setBackgroundImage:[UIImage imageNamed:@"normal.png"]];
并在执行按钮时切换到"selected.png"。
[self.mybutton setBackgroundImage:[UIImage imageNamed:@"selected.png"]];
您需要在界面生成器中为每个状态设置图像,如果需要,您不需要添加代码:
Select State Config
到 Default
然后选择一张图片
Select State Config
到 Selected
然后选择一张图片
现在测试按钮的每个状态:
您可以对背景图像执行相同的操作,只需 select 参数 "Background"
你有点击按钮的方法吗?如果是,请将其放在下面的行中:
[self.myButton setSelected:YES];
[self.myButton setImage:[UIImage imageNamed:@"selected.png"] forState:UIControlStateSelected];
我相信您需要做的是在点击按钮时将按钮的状态设置为选中。大概是这样的:
-(IBAction)buttonTapped:(id)sender {
if(self.myButton.selected)
[self.mybytton setSelected:NO];
else
[self.mybutton setSelected:YES];
}
在状态配置中的 IB 构建器中更改为您需要的任何图像,并向该按钮添加一个操作,并在其中添加这行代码,如@Aladin 所述。
@IBAction func btnPressed (_ sender: UIButton) {
// If you want to change it for selected state when tapped.
sender.isSelected = !sender.isSelected
}