gpt4 book ai didi

ios - 如何在 View 可见时添加动画?

转载 作者:行者123 更新时间:2023-11-29 10:30:53 25 4
gpt4 key购买 nike

我有一个 UIView在静态 UITableViewCell . view设置为隐藏在 viewDidLoad 中.当 button被选中,view变得可见。

- (void)viewDidLoad {
[self.myView setHidden:YES];
}

- (IBAction)myButton:(id)sender
{
if (self.myView.hidden == YES) {
[self.myView setHidden:NO];
} else {
[self.myView setHidden:YES];
}

[self.tableView beginUpdates];
[self.tableView endUpdates];
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
if (indexPath.row == 1)
{
if (self.myView.hidden == YES) {
retuen 252 - self.myView.bounds.size.height;
} else return 252;
}
tableView.estimatedRowHeight = 150;
return UITableViewAutomaticDimention;
}

现在发生的是,当 button被选中时,view变得可见并且 cells高度随动画变化;但是 view立即可见,并且它会妨碍其他对象(直到 cells 动画结束)。

如何制作 view还带动画进入? (我更喜欢它的高度动画。)

编辑

我尝试了以下方法来设置高度动画,以便它应该与 cell 同步

if (self.myView.hidden == YES) {
[self.myView setFrame:CGRectMake(self.myView.frame.origin.x, self.myView.frame.origin.y - self.myView.frame.size.height, self.myView.frame.size.width, self.myView.frame.size.height)];

[self.myView setHidden:NO];
[UIView animateWithDuration:1.0 animations:^(){
[self.myView setFrame:CGRectMake(self.myView.frame.origin.x, 0, self.myView.frame.size.width, self.myView.frame.size.height)];
}];
}

但它所做的只是为 views 设置动画位置,(从上到下)不是它的高度??

最佳答案

你可以这样改,

if (self.myView.hidden == YES) {
[self.myView setAlpha:0.0];
[self.myView setHidden:NO];
}
[UIView animateWithDuration:0.2 animations:^{
if (self.myView.hidden == YES) {
[self.myView setAlpha:1.0];
} else {
[self.myView setAlpha:0.0];
}
}
completion:^(BOOL finished) {
if (self.myView.alpha == 0.0) {
[self.myView setHidden:YES];
}
}];

希望这对你有帮助。

享受编码吧!

关于ios - 如何在 View 可见时添加动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29690740/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com