如何让图层的帧根据其超级层的帧或其视图的帧自动调整大小?

时间:2010-05-26 17:06:32

标签: iphone objective-c core-animation calayer

我正在尝试使用cagradientlayer在我们的应用程序中绘制渐变,而不是让uiview的子类管理渐变。我遇到的一个问题是,当将具有渐变作为其主图层的子层的视图调整大小以适合我想要显示的数据时,该图层不会随之调整大小。我最终得到了原始帧大小的渐变层结束,而我的视图框架要大得多。

有没有办法让子层自动调整以适应其超级层的帧或超级层的视图框架?

2 个答案:

答案 0 :(得分:9)

在视图的子类中实现layoutSubviews。调整帧大小时(或调用setNeedsLayout时)调用它。只需将图层的框架设置为视图的边界:

-(void)layoutSubviews
{
    someSubview.frame = self.bounds;   // make the subview frame match its view
}

答案 1 :(得分:2)

这样可以更好地使用

-(void)viewWillLayoutSubviews