gpt4 book ai didi

ios - 为 UIButton 设置边框

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:00:49 30 4
gpt4 key购买 nike

我正在尝试为 UIButton 保留边框。如果我使用以下代码,它会正常工作。

案例:1

[[_myButton layer] setBorderWidth:1.0f];
[[_myButton layer] setBorderColor:[UIColor lightGrayColor].CGColor];

但在我写之前:

self.baseTypeButton.layer.borderWidth=2.0f;
self.myButton.layer.borderColor=[UIColor lightGrayColor];

XCode 建议我做

enter image description here

现在我的代码改变了,但是在这种情况下我没有设置边框:

案例:2

_myButton.layer.borderWidth=2.0f;
_myButton.layer.borderColor=(__bridge CGColorRef _Nullable)([UIColor lightGrayColor]);

我没有使用自动布局。任何人都可以解释 case-1 和 case-2 之间的区别是什么。为什么 case-2 不起作用。

最佳答案

layer.borderColor 必须是 CGColor,所以下面的代码可以工作。

_myButton.layer.borderWidth=2.0f;
_myButton.layer.borderColor=[ UIColor lightGrayColor ].CGColor;

你的代码

   [UIColor lightGrayColor]

返回一个 UIColor 实例,而不是 CGColor 实例。而且 UIColor 不能桥接到 CGColor,所以你的类型转换

(__bridge CGColorRef _Nullable)

返回意外结果。

使用这段代码你会看到奇怪的结果

NSLog( @"%@", (__bridge CGColorRef _Nullable)([UIColor lightGrayColor]) );

返回下方。 (Xcode 7.3)

2016-04-06 15:30:51.415 36442877[8570:2643221] UIDeviceWhiteColorSpace 0.666667 1

如果给 borderColor CGColor 实例目录,则不需要转换。

关于ios - 为 UIButton 设置边框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36442877/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com