UIView 动画不起作用
Posted
技术标签:
【中文标题】UIView 动画不起作用【英文标题】:UIView animations are not working 【发布时间】:2014-03-10 10:00:09 【问题描述】:我正在使用动画来更改淡入和淡出的视图框架。但是它们不起作用。 操作系统:ios7
[UIView animateWithDuration:0.8 animations:^
[objArticleTable setFrame:CGRectMake(CGRectGetMinX([objArticleTable frame]), CGRectGetMinY([objArticleTable frame]), CGRectGetWidth([objArticleTable frame]), 0)];];
【问题讨论】:
你把框架的高度设置为0???为什么? 我已将其从 50 更改为 0 你可以把alpha
改成fadeOut
和fadeIn
..
你在主线程上执行动画吗?
考虑使用仿射变换来执行操作。
【参考方案1】:
试试这个:
objArticleTable.alpha = 0.0f;
objArticleTable.hidden = NO;
[UIView animateWithDuration:0.5f
animations:^
objArticleTable.alpha = 1.0;
completion:^(BOOL finished)
//Done
];
【讨论】:
【参考方案2】:fade-in
效果可以使用
objArticleTable.alpha = 0.0f;
[UIView animateWithDuration:0.8 animations:^
[objArticleTable setFrame:CGRectMake(CGRectGetMinX([objArticleTable frame]), CGRectGetMinY([objArticleTable frame]), CGRectGetWidth([objArticleTable frame]), 50)];];
objArticleTable.alpha = 1.0f;
completion:nil];
对于fade-out
objArticleTable.alpha = 1.0f;
[UIView animateWithDuration:0.8 animations:^
[objArticleTable setFrame:CGRectMake(CGRectGetMinX([objArticleTable frame]), CGRectGetMinY([objArticleTable frame]), CGRectGetWidth([objArticleTable frame]), 0)];];
objArticleTable.alpha = 0.0f;
completion:nil];
【讨论】:
【参考方案3】:试试这个.. 仅当您想更改 alpha 将采用淡入和淡出的帧时才使用设置帧..
[UIView animateWithDuration:10.0f animations:^
objArticleTable.alpha = 1.0f;
[objArticleTable setFrame:CGRectMake(CGRectGetMinX([objArticleTable frame]),CGRectGetMinY([objArticleTable frame]), CGRectGetWidth([objArticleTable frame]), 50)];
completion:^(BOOL finished)
[UIView animateWithDuration:10.0f animations:^
objArticleTable.alpha = 0.0f;
[objArticleTable setFrame:CGRectMake(CGRectGetMinX([objArticleTable frame]), CGRectGetMinY([objArticleTable frame]), CGRectGetWidth([objArticleTable frame]), 0)];
];
];
【讨论】:
以上是关于UIView 动画不起作用的主要内容,如果未能解决你的问题,请参考以下文章