我正在尝试使用一个按钮在UIImageView对象中的两个图像之间切换。我一直在寻找一个问题/答案接近我的具体问题,但没有运气,所以这里... ...
MainViewController.h
IBOutlet UIButton *selectionButton;
UIImageView *selectionStatus;
@property(nonatomic, retain) UIButton *selectionButton;
@property(nonatomic, retain) UIImageView *selectionStatus;
- (IBAction)selectionButtonPressed: (id)sender;
MainViewController.m
@synthesize selectionButton;
@synthesize selectionStatus;
- (IBAction)selectionButtonPressed: (id)sender
{
if (selectionStatus.highlighted == YES)
selectionStatus.highlighted = NO;
else
selectionStatus.highlighted = YES;
}
-(void)viewWillAppear:(BOOL)animated {
// selection images
selectionStatus = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"NotSelected.png"]
highlightedImage:[UIImage imageNamed:@"Selected.png"]];
}
当我在模拟器中运行时,图像不会出现在“SelectionStatus”中,所以我想我错过了很多东西。非常感谢帮助。谢谢!
我应该多说一下这个按钮。 selectionButton是一个自定义按钮,它覆盖selectionStatus imageview以及显示计算结果的标签。点击selectionButton选择标签中的值以包含在最多三个所选标签值的平均值的计算中。 selectionStatus中显示的图像是一个复选标记,根据选择状态更改颜色。我找到了另一种有效的方法,但看起来不那么优雅:
- (IBAction)selectionButtonPressed: (id)sender
{
if (toggleValue == YES) {
toggleValue = NO;
UIImage *unselect = [UIImage imageNamed:@"NotSelected.png"];
selectionStatus.image = unselect;
}
else {
toggleValue = YES;
UIImage *select = [UIImage imageNamed:@"Selected.png"];
selectionStatus.image = select;
}
}
此方法不需要使用viewWillAppear,并且初始化在viewDidLoad中完成。感谢您的意见和建议。
答案 0 :(得分:0)
在ib中,设置按钮的背景图像属性。我认为您的图像非常大,实际上当您将按钮的状态设置为高亮显示时,它会显示在按钮上。 试试吧,我不确定。