我有一个自定义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
?基本上,我希望我的自定义渲染代码能够处理视图的外观,无论它在任何时间点的大小。
答案 0 :(得分:2)
我遇到了完全相同的问题,这就是我解决问题的方法:
dayDetail.view.contentStretch = CGRectMake(0.5, 0.5, 0.0, 0.0);
这将仅拉伸中间像素。阅读文档以了解如何修改该行为。你当然可以问我,但阅读文档可能更快。此外,我可能只是引用文档。