Bre*_*ett 2 iphone objective-c ios4
我对我的一个人的行为有困难UIButtons.我试图基本上使它成为一个切换按钮,但我遇到了下面的问题.
我有代码:
UIButton *likeButton = [[UIButton alloc] initWithFrame:CGRectMake(horizontalOffset+buttonWidth, verticalOffset, buttonWidth, buttonHeight)];
[likeButton setImage:[UIImage imageNamed:@"like-off.png"] forState:UIControlStateNormal];
[likeButton setImage:[UIImage imageNamed:@"like-on.png"] forState:UIControlStateHighlighted];
[likeButton setImage:[UIImage imageNamed:@"like-on.png"] forState:UIControlStateSelected];
[likeButton addTarget:self action:@selector(likeButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
Run Code Online (Sandbox Code Playgroud)
激发方法:
-(void)likeButtonPressed:(id)sender {
UIButton *button = (UIButton *)sender;
[button setSelected:!button.selected];
}
Run Code Online (Sandbox Code Playgroud)
我看到的行为是,当我点击按钮(并突出显示)时,它按预期工作,并且'like-on.png'图像用于突出显示的状态,并且它在'selected'中保持打开状态州.
但是,当我再次点击按钮时,要将其关闭,当我按下手指时,我会看到灰色突出显示的状态.当我松开手指时,我看到'like-off'图像显示为预期.
当我将其关闭时,当我将手指按下按钮时,我想避免看到灰色突出显示的状态.相反,我想确保切换关闭时突出显示的状态使用代码中指定的'like-on.png'图像.
这里发生了什么?我的代码可能不正确的任何想法?
非常感谢,布雷特
您缺少所选和突出显示状态的图像:
[likeButton setImage:[UIImage imageNamed:@"like-on.png"] forState:UIControlStateSelected | UIControlStateHighlighted];
Run Code Online (Sandbox Code Playgroud)
如果未设置,则使用正常状态的图像.从-[UIButton setImage:forState:]文档:
通常,如果没有为状态指定属性,则默认使用UIControlStateNormal值.
如果您不想在突出显示图像时修改它们,请设置:
likeButton.adjustsImageWhenHighlighted = NO;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3725 次 |
| 最近记录: |