gpt4 book ai didi

iOS View 从 uitablewviewcell 过渡,在过渡时移动单元格标签

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

您好,我正在尝试实现从 UITableViewCell 到新 Controller 的转换,在转换时我想将单元格的标签移动到新 Controller 中新标签的位置,当关闭 Controller 时,标签应该去回到单元格中的原始位置。此链接中复制了效果:http://framerjs.com/examples/preview/#detail-view-transition.framer

谁能指出我正确的方向?

最佳答案

与其实际为 UITableViewCell 设置动画,不如“伪造”它就足够了。一种可行的方法是将 Controller View 中的 UITableViewCell 的框架传递给下一个 View Controller 。然后,当下一个 View 加载时,将相应的 View 动画化到从您刚刚通过的那一帧开始的位置。可能看起来像这样。

@property (assign, nonatomic) CGRect cellFrameForNextView;

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];
self.cellFrameForNextView = cell.frame;
self.cellFrameForNextView.origin = [cell convertPoint:cell.frame.origin toView:self.view];
[self performSegueWithIdentifier:@"showNextView" sender:self];
}

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if([segue.identifier isEqualToString:@"showNextView"]) {

NextViewController *vc = (NextViewController*)[segue destinationViewController];
vc.frameToStartAnimation = self.cellFrameForNextView;
}
}

然后在你的下一个 View 中

@property (assign, nonatomic) CGRect frameToStartAnimation;
@property (strong, nonatomic) UIView *viewThatWillAnimate;

-(void)viewDidAppear:(animated)animated
{
[super viewDidAppear:animated]

CGRect frameToFinishAnimation = self.viewThatWillAnimate.frame;
self.viewThatWillAnimate.frame = self.frameToStartAnimation;
[UIView animationWithDuration:0.3 animations:^{
self.viewThatWillAnimate.frame = frameToFinishAnimation;
}];
}

这不是一个完美的解决方案,但我希望它能让您朝着正确的方向找到解决方案:)

关于iOS View 从 uitablewviewcell 过渡,在过渡时移动单元格标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31169721/

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