gpt4 book ai didi

iphone - 根据内容自动展开UIView?

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

我有一个设置了背景颜色的 UIView A,它包含一个高度可以动态变化的 UIView B。当UIView B的高度超过UIView A时,是否可以让UIView A的高度自动匹配UIView B的高度?

我试过使用 Autosizing,但它似乎只是为了相对于其父 View 调整 subview 的大小,而不是相反。

我也知道有一个方法叫做sizeToFit,但是每次内容改变的时候都需要手动调用这个方法。没有其他选择吗?

最佳答案

虽然不是全自动的,但您可以使用 Key Value Observing监听内容的变化,然后在那里调整 UIView 的大小。这可以防止在内容发生变化的任何地方都用代码来调整 View 大小。

例如(假设您在 UIViewController 中执行此操作):

// Somewhere when the view is loaded, probably in -(void)viewDidLoad do this:
[self addObserver:self forKeyPath:@"viewA.frame" options:0 context:NULL];

// Then, implement this method
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
// Resize your views, either using sizeToFit, Purple Ninja's method, or another method
}

// Finally, make sure to unregister in dealloc:
- (void)dealloc {
[self removeObserver:self forKeyPath:@"viewA.frame"];
// ...
[super dealloc];
}

参见 NSKeyValueObserving Protocol Reference了解更多信息

关于iphone - 根据内容自动展开UIView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6755617/

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