gpt4 book ai didi

iphone - 使用 block 排队动画

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:44:05 24 4
gpt4 key购买 nike

在我的 didSelectRowAtIndexPath 方法中,我调用 [self dismissView]; 当用户选择一个单元格以便关闭 View (如果它已经显示)。这显然不是最优的,并且它在没有为 dismissView 设置动画的情况下覆盖了 presentView 方法。有一个更好的方法吗?或者至少让它等待 View 完成动画而不使用 NSTimer。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath;
{
[self dismissView];

// Do xyz...

[self presentView:twitterLinksView];

然后..

- (void)presentView:(id)sender
{
twitterLinksView.frame = CGRectMake(0, (self.view.frame.size.height + viewHeight), 320, 300);


[UIView animateWithDuration:0.60f animations:^{


CGRect twitterLinkFrame = self.twitterLinksView.frame;
twitterLinkFrame.origin.y = (self.view.frame.size.height - viewHeight);

twitterLinksView.frame = twitterLinkFrame;
}];
}

- (void)dismissView
{

[UIView animateWithDuration:0.75f animations:^{

CGRect twitterLinkFrame = self.twitterLinksView.frame;
twitterLinkFrame.origin.y = (self.view.frame.size.height + viewHeight);

self.twitterLinksView.frame = twitterLinkFrame;
}];
}

最佳答案

[UIView animateWithDuration:1. animations:^{

//firstAnimationBlock

} completion:^(BOOL finished){
[UIView animateWithDuration:1. animations:^{

//animations in this block will be called after firstAnimationBlock has expired
}];
}];

据我了解,您想要一个接一个地发射 2 个动画。这段代码(嵌套block)使得这个

这部分是编辑后的:好的,现在你可以尝试这样写了

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath;
{
[self dismissView];

// Do xyz...

[self performSelector:@selector(presentView:) withObject:twitterLinksView afterDelay:0.75];

//[self presentView:twitterLinksView];
}

关于iphone - 使用 block 排队动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15668375/

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