2011-03-23 42 views
1

我有一个自定义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被连续调用,因为视图是从小到全屏动画的?基本上,我希望我的自定义渲染代码能够处理视图的外观,而不管它在任何时间点的大小。

回答

2

我有完全相同的问题,这是我如何解决它:

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

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

+0

有趣的,我会试试这个。 – MusiGenesis 2011-03-23 15:10:59

+0

@MusiGenesis有用吗? – 2011-03-31 20:41:08