我正在尝试在屏幕上为带有颜色渐变的水平条设置动画。为简单起见,我选择制作一个完全扩展的条形图,将其分配给UIImageView,并(尝试)使用UIView动画调整其大小。问题是在图像的“关闭”状态下,显示的图像部分不是我想要的部分。图像被布置成使得从L到R,出现白色到红色的渐变。右侧(大约20个像素)是纯红色,是条形图“折叠”时我要显示的部分。我试图将图像扩展大约100个像素到它的全宽。我为我的代码引用了“立即购买”按钮示例,因为它看似相关“
UIButton AppStore buy button animation
我的代码:
[UIView beginAnimations:@"barAnimation" context:nil];
[UIView setAnimationDuration:0.6];
CGRect barFrame = bookBar.bounds;
if (fExtendBar)
{
barFrame.origin.x -= 100;
barFrame.size.width += 100;
}
else
{
barFrame.origin.x += 100;
barFrame.size.width -= 100;
}
bookBar.frame = barFrame;
[UIView commitAnimations];
我觉得这应该是可能的,可能是通过设置一个“offsetOfImage”来显示在UIImageView中,但我似乎无法使它工作。另外,我注意到这种行为与调整图像大小时Interface Builder中发生的行为是一致的。然后,我认为有一种方法可以通过编程方式覆盖此行为。欢迎任何建议(包括其他方法)。
谢谢, chris.o。
答案 0 :(得分:0)
我正面临同一问题的稍微复杂的版本。您是否尝试过使用CALayer并设置contentsGravity属性?