【发布时间】:2026-02-05 12:30:01
【问题描述】:
我有一个自定义的UIView,它实现了drawRect,以使用渐变背景和边缘周围的 1 像素黑色边框以及一些文本来呈现自己。
在我的父视图控制器中,我尝试使用以下代码将我的自定义视图从原来的小尺寸动画化为全屏:
[UIView beginAnimations:nil context:NULL];
CGRect screenRect = [[UIScreen mainScreen] applicationFrame];
CGRect detailRect = CGRectOffset(screenRect, 0, -screenRect.origin.y);
[dayDetail.view setFrame:detailRect];
[UIView commitAnimations];
这可行,但我的自定义视图中的drawRect 仅在最初创建视图时调用一次。结果,调整大小只需要原始的小图像并将其放大到全屏,因此全尺寸视图的边框现在是多个像素宽而不是一个,并且文本的大小也得到了扩展。
有什么方法可以设置它,以便在视图从小到全屏动画时连续调用drawRect?基本上,我希望我的自定义渲染代码能够处理视图的外观,无论它在任何时间点的大小。
【问题讨论】: