自定义UIButton圆角在突出显示时变为平方?

时间:2013-04-20 04:33:42

标签: ios xcode button

我有一个自定义UIButton的代码:

btnLogin.layer.cornerRadius = 10;

[btnLogin setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"bluetint.png"]]];
[btnLogin setAlpha:1];
[btnLogin setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[btnLogin setBackgroundImage:[UIImage imageNamed:@"reallybluetint.png"] forState:UIControlStateHighlighted];
[btnLogin setBackgroundImage:[UIImage imageNamed:@"reallybluetint.png"] forState:UIControlStateSelected];

当我突出显示按钮时,即使它在正常状态下有圆角,它也会变成平方。

有什么想法吗?

3 个答案:

答案 0 :(得分:7)

尝试使用此代码,它将起作用,

btnLogin.layer.cornerRadius = 10.0;
[btnLogin setClipsToBounds:YES];

答案 1 :(得分:0)

此外,我遇到了类似的问题,请确保“界面”构建器中的按钮设置为自定义,因为如果不是,您将看到圆角。

我在使用图像时发现的有用的东西是UIEdgeInsets。所以我可能会像这样做一个程序化的自定义按钮。

UIButton * customButton = [UIButton buttonWithType:UIButtonTypeCustom];
[customButton setBackgroundImage:[[UIImage imageNamed:@"customerImage.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(1, 4, 2, 4)] forState:UIControlStateNormal];

但是您可以使用resizableImageWithCapInsets的任何图像。我建议您阅读以确保您可以正确配置它,但即使它没有帮助您知道它可以帮助您以后。

Apple Doc只需控制F可调整大小

希望这有助于^ _ ^

P.S。圆角将工作但是如果您尝试这个并且它不起作用确保您已导入Quartzcore。我常常忘记这一步,直到我能弄明白时才会焦虑不安。无论如何祝你好运!

答案 2 :(得分:0)

Swift

import UIKit

class CustomUIButtonForUIToolbar: UIButton {

    override func drawRect(rect: CGRect) {
        super.drawRect(rect)
        ...
        self.clipsToBounds = true
    }

}