UIView 转换仅在 UIView 是通过 Interface Builder 创建时才有效

Posted

技术标签:

【中文标题】UIView 转换仅在 UIView 是通过 Interface Builder 创建时才有效【英文标题】:UIView transition works only if the UIView is created through Interface Builder 【发布时间】:2011-11-14 19:32:07 【问题描述】:

我将下面的代码连接到 UIButton 操作...如果我像下面这样以编程方式创建图像视图... myImageView 不会在屏幕上显示动画(它会立即出现)

UIIImageView *myImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"btn_image.png"]];

 [self.view addSubview:myImageView];
 [myImageView setHidden:YES];

 [UIView transitionWithView:myImageView duration:2 options: UIViewAnimationOptionTransitionFlipFromLeft animations:^
        [myImageView setHidden:NO];
     completion:nil];

但是,如果我首先在 Interface Builder 中创建“myImageView”并将其隐藏属性设置为 true,然后将其与插座连接起来,则相同的代码可以正常工作

[UIView transitionWithView:myImageView duration:2 options: UIViewAnimationOptionTransitionFlipFromLeft animations:^
        [myImageView setHidden:NO];
     completion:nil];

那么...在以编程方式创建以使其正常工作时,我还需要做些什么吗?谢谢!

【问题讨论】:

【参考方案1】:

这是一个教程链接,我可以用它来让它工作......

http://www.dizzey.com/development/ios/simple-uiview-transitions-animation-using-blocks-in-ios-4/

您需要有一个 containerView,并且需要在 viewdidload 期间将其添加到您的主视图中(而不是在您希望进行转换的操作期间)

这适用于“addSubView”或“setHidden:NO”

【讨论】:

以上是关于UIView 转换仅在 UIView 是通过 Interface Builder 创建时才有效的主要内容,如果未能解决你的问题,请参考以下文章

UIView 转换到同一个视图

仅在 UIView 顶部的圆角

绘制 UIView 并转换为 UIImage

让 UIView 动画通过 airplay 播放

如何将 UIView 转换为高分辨率的 UIImage?

如何仅在uiview的底部和右侧添加阴影?