我有以下内容适用于UIImageView。我不确定UIView动画是否可以与包含的控制器一起使用?我知道我正在为视图的框架制作动画,但不确定这是否适用(下面的代码只是概念验证)。但即使这样,下面也没有用。任何想法为什么不呢?
事先提前 编辑#1
我添加了一个屏幕截图,其中显示了一个黄色的自定义视图控制器,其中包含短语holla
。正如您可以看到下面的代码aniamtes框架,但不是该视图控制器的元素。这是有意的吗?有解决方法吗?
#import "MyViewController.h"
@interface ViewController ()
@property (nonatomic, strong) MyViewController *firstIV;
@end
- (void)viewDidLoad
{
[super viewDidLoad];
// lets add a few UIImageViews that we will animate
MyViewController *tmpFirstIV=[[MyViewController alloc] init];
tmpFirstIV.view.backgroundColor=[UIColor yellowColor];
tmpFirstIV.view.frame=CGRectMake(10.0f, 10.0f, 100.0f, 100.0f);
self.firstIV=tmpFirstIV;
[self addChildViewController:self.firstIV];
[self.view addSubview:self.firstIV.view];
[self.firstIV didMoveToParentViewController:self.firstIV];
-(void)updateAction:(id) sender{
NSLog(@"Here are some results");
if([self.updateButton.currentTitle isEqualToString:@"update this"]){
[UIView animateWithDuration:6.0f animations:^{ // yeah I know, long animation
self.firstIV.view.frame=CGRectMake(10.0f, 10.0f, 100.0f, 0.0f);
}];
[self.updateButton setTitle:@"make bigger" forState:UIControlStateNormal];
}else{
[UIView animateWithDuration:6.0f animations:^{ // equally long
self.firstIV.view.frame=CGRectMake(10.0f, 10.0f, 100.0f, 100.0f);
}];
[self.updateButton setTitle:@"update this" forState:UIControlStateNormal];
}
}
EDIT2
似乎没有做任何事情......将调查此层。
- (无效)viewWillLayoutSubviews { [super viewWillLayoutSubviews];
CGRect viewBounds = self.view.bounds;
self.myLabel.frame = CGRectMake(100.0f,viewBounds.size.height-20.0f,50.0f,50.0f);
}
答案 0 :(得分:0)
您只是为黄色框的框架设置动画,而不是标签。标签的框架不会因为超级视图的框架发生变化而改变。你要么:
- (void)viewWillLayoutSubviews
方法。