我有一个包含另一个UIView的UIView。外部UIView通过drawRect
在内部UIView周围绘制边框。 (边框太复杂,无法通过CALayer属性绘制。)
目前,当我为外部UIView的大小调整设置动画时,它的drawRect
方法在动画开始时被调用一次,结果被拉伸或缩小。这看起来不太好。
我正在寻找一种在动画的每一步重绘内容的方法,或者找到一种方法来实现相同的视觉效果。 (结果应该类似于可伸缩UIImage的大小调整。)
答案 0 :(得分:1)
您应该将视图的内容类型更改为:
your_view.contentMode = UIViewContentModeRedraw;
每次帧的变化都会重绘。
答案 1 :(得分:0)
我最后添加了带有自动调整遮罩的子视图,使其在动画过程中保持正确定位。
答案 2 :(得分:-1)
每次更改帧大小时,您需要向视图发送[UIView setNeedsToDisplay],您可以尝试覆盖setFrame:方法,如
- (void)setFrame:(CGRect)r
{
[super setFrame:r];
[self setNeedsToDisplay];
}