gpt4 book ai didi

ios - 我什么时候应该在 UIViews 中设置边框?

转载 作者:行者123 更新时间:2023-11-29 00:39:52 26 4
gpt4 key购买 nike

我有一个未填满整个屏幕的 UIView,我想向该 View 添加顶部边框。但是,我不断收到以下信息:enter image description here

这是我使用的代码:

CGFloat thickness = 4.0f;
CALayer *topBorder = [CALayer layer];
topBorder.frame = CGRectMake(0, 0, self.announcementCard.frame.size.width, thickness);
topBorder.backgroundColor = [UIColor blueColor].CGColor;

我怎么知道为什么边框会超出屏幕。这是因为我将边框放在 UIViews init 方法内的 View 上。当我这样做时,self.announcementCard.frame.size.width 是 1000,因此边框会离开屏幕。 self.announcementCard.frame.size.width 的宽度和高度均为 1000。这是因为 UIView 尚未在其 init 方法中向 UIView 添加约束。

因此,我的问题是我应该什么时候调用上面编写的代码? self.announcementCard.frame.size.width 何时添加其约束并更新其框架?

最佳答案

您应该在 viewDidLoad 方法中添加 subview (或子图层)。但是,如果您使用自动布局,请保留子图层的引用并在 viewDidLayoutSubviews 方法中更新它:

- (void)viewDidLoad {
[super viewDidLoad];

_borderLayer = [CALayer layer];

[self.view.layer addSublayer:_borderLayer];
}


- (void)viewDidLayoutSubviews {
[super viewDidLayoutSubviews];

_borderLayer.frame = CGRectMake(0, 0, self.view.bounds.size.width, 3);
}

否则,您可以简单地 clipsToBounds View 来避免 subview 超出边界可见。

self.view.clipsToBounds = YES;

关于ios - 我什么时候应该在 UIViews 中设置边框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39774193/

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