在自定义绘制视图中设置动画大小更改的问题

时间:2011-03-23 14:18:46

标签: iphone ios

我有一个自定义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?基本上,我希望我的自定义渲染代码能够处理视图的外观,无论它在任何时间点的大小。

1 个答案:

答案 0 :(得分:2)

我遇到了完全相同的问题,这就是我解决问题的方法:

dayDetail.view.contentStretch = CGRectMake(0.5, 0.5, 0.0, 0.0);

这将仅拉伸中间像素。阅读文档以了解如何修改该行为。你当然可以问我,但阅读文档可能更快。此外,我可能只是引用文档。