4

我有自定义 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];

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

有任何想法吗?

4

3 回答 3

7

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

btnLogin.layer.cornerRadius = 10.0;
[btnLogin setClipsToBounds:YES];
于 2013-04-20T05:07:16.543 回答
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 即可调整大小

希望这会有所帮助^_^

ps 圆角会起作用,但是如果你尝试这个并且它不起作用,请确保你已经导入了 Quartzcore。我经常忘记这一步,并在我弄明白之前变得焦虑。总之祝你好运!

于 2013-04-20T05:36:48.697 回答
0

斯威夫特

import UIKit

class CustomUIButtonForUIToolbar: UIButton {

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

}
于 2014-11-22T17:40:35.663 回答