如何使用按钮在UIImageView对象中的非突出显示图像中突出显示之间切换?

时间:2012-06-13 22:50:46

标签: iphone uiimageview uibutton

我正在尝试使用一个按钮在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中完成。感谢您的意见和建议。

1 个答案:

答案 0 :(得分:0)

在ib中,设置按钮的背景图像属性。我认为您的图像非常大,实际上当您将按钮的状态设置为高亮显示时,它会显示在按钮上。 试试吧,我不确定。