gpt4 book ai didi

ios - CALayer IOS 上的自动布局约束

转载 作者:IT王子 更新时间:2023-10-29 07:32:00 25 4
gpt4 key购买 nike

您好,我正在开发 iPhone 应用程序,我试图在其中为 edittext 设置一侧边框。我通过以下方式做到了这一点:

 int borderWidth = 1;
CALayer *leftBorder = [CALayer layer];

leftBorder.borderColor = [UIColor whiteColor].CGColor;
leftBorder.borderWidth = borderWidth;

leftBorder.frame = CGRectMake(0, textField.frame.size.height - borderWidth, textField
.frame.size.width, borderWidth);
[textField.layer addSublayer:leftBorder];

我在 IB 中对我的 edittext 设置了一些限制,这样当我旋转我的设备时,它会根据它调整文本字段的宽度。我的问题是调整 edittext 的宽度而不是调整我为编辑文本设置的 CALayer 的宽度。所以我想我也必须为我的 CALayer 项目设置一些限制。但我不知道该怎么做。任何人都知道这件事吗?需要帮忙。谢谢。

最佳答案

整个自动调整业务是特定于 View 的。图层不会自动调整大小。

你必须做的——在代码中——是自己调整层的大小

例如

在 viewController 中你会做

- (void) viewDidLayoutSubviews {
[super viewDidLayoutSubviews]; //if you want superclass's behaviour...
// resize your layers based on the view's new frame
self.editViewBorderLayer.frame = self.editView.bounds;
}

或者在您可以使用的自定义 UIView 中

- (void)layoutSubviews {
[super layoutSubviews]; //if you want superclass's behaviour... (and lay outing of children)
// resize your layers based on the view's new frame
layer.frame = self.bounds;
}

关于ios - CALayer IOS 上的自动布局约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24303279/

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