【问题标题】:How to place and rotate UIImageView that is larger than screen active area?如何放置和旋转大于屏幕活动区域的 UIImageView?
【发布时间】:2011-08-04 17:15:48
【问题描述】:

我有一个代表太阳光线的图像,我需要在 iphone 4 屏幕上旋转这些太阳光线。我想到的非常直观的解决方案是拥有相当大的图像,将其放在 UIImageView 中,设置其锚点,然后使用 CA 动画(animation)。我正在使用界面构建器设计我的 UI,问题是我无法将大于活动屏幕(根视图)大小的大图像放入 UIImageView,因为它只是裁剪它。有什么想法和解决方案吗?

【问题讨论】:

  • 如果你不使用Interface Builder,它非常简单。 IB 是否将 UIImageView 的边界更改为显示区域?
  • 嗯,我不知道 :) 我将图像放到 UIImageView 中,我看到的是活动区域中的裁剪图像。因为我的图像非常大,我想将它从左上角 (0, 0) 移动到一些 x =-500 px 和 y =-500 px。我对 CA 动画不是很熟悉 :( 也许你有可行的解决方案,甚至是简单的例子,如何从代码中实现它?你能把它发布到答案吗?

标签: iphone animation uikit uiimageview rotation


【解决方案1】:

可能是这样的(在代码中,而不是在 IB 中):

UIImageView *img = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"starburst.png"]];
img.center = CGPointMake (0, 0);
[self.view addSubview:img];

然后,为它制作动画,可能是这样的:

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1.0f];
img.alpha = 0.0f;
[img release];
[UIView commitAnimations];

(不要忘记在使用完 img 后释放它——我在上面做了一个例子,但你可以将释放移动到任何你需要的地方)

【讨论】:

  • 现在我让它做一个 alpha 淡入淡出,但这也可以是移动(例如通过移动中心点)、调整大小(通过改变框架)或旋转/转换...
猜你喜欢
  • 2012-02-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-11
  • 1970-01-01
  • 2012-08-13
  • 2012-03-20
  • 1970-01-01
相关资源
最近更新 更多