【问题标题】:Override Apple's UIButton Highlight覆盖 Apple 的 UIButton Highlight
【发布时间】:2012-06-08 15:29:32
【问题描述】:

我有一个按钮,我在其中设置了它的图像及其选定和突出显示的状态图像,如下所示:

        UIImage *buttonImage = [UIImage imageNamed:@"btn_learn_pad"];
        self.learnMoreButton = [[UIButton alloc] initWithFrame:CGRectMake(50, 0, buttonImage.size.width, buttonImage.size.height)];
        [self.learnMoreButton setImage:buttonImage forState:UIControlStateNormal];
        [self.learnMoreButton setImage:[UIImage imageNamed:@"btn_learn_focus_pad"] forState:UIControlEventTouchUpInside | UIControlStateHighlighted | UIControlStateSelected];
        [self.learnMoreButton addTarget:self action:nil forControlEvents:UIControlEventTouchUpInside];

这仍然会在选择时将 Apple 的较暗 alpha 覆盖在图像顶部。如何消除这种影响?

谢谢

【问题讨论】:

    标签: iphone objective-c xcode ipad uibutton


    【解决方案1】:

    代替 setImage:forState 使用setBackgroundImage:forState:

    [self.learnMoreButton setBackgroundImage:[UIImage imageNamed:@"btn_learn_pad"] forState:UIControlStateNormal];
    [self.learnMoreButton setBackgroundImage:[UIImage imageNamed:@"btn_learn_focus_pad"] forState:UIControlStateHighlighted];
    

    【讨论】:

    • 我编辑了答案,这对我来说总是适用于自定义类型的按钮。但我也尝试了 setImage,它也有效。我认为因为我使用了 2 个语句,所以这行得通
    • 有什么意义?你在读问题吗?我需要一个不同的图像,称为 btn_learn_focus_pad,它会在突出显示/选择时显示。因此,正常状态与选中的突出显示不同。而且我可以通过| 分隔状态,两个语句或一个无关紧要。
    • 嗯,我不知道,你试过了吗?我做到了,对不起示例代码中的复制/粘贴错字,它对我有用
    猜你喜欢
    • 2015-12-26
    • 2012-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多