gpt4 book ai didi

ios - iOS中需要控制UIImageView在UITableView上的移动

转载 作者:行者123 更新时间:2023-11-29 03:52:20 25 4
gpt4 key购买 nike

我有一个 UIImageView,当前移动到用户选择的 UITableView 中的任何一行。该功能运行良好。不过,我现在想做的也是通过按钮来控制它的移动。我有两个按钮,一个用于向上一行,一个用于向下一行。两个按钮具有不同的标记值,但调用相同的 IBAction 方法。我想知道的是如何将 UIImageView 向上/向下移动一行?我目前有以下代码,可以正常工作:

- (void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

[self.view bringSubviewToFront:_imageView];

[UIView animateWithDuration:.3 animations:^{
CGRect rect = [self.view convertRect:[tableView rectForRowAtIndexPath:indexPath] fromView:tableView];
_imageView.frame = rect;
}];

}

上述方法可以很好地将 UIImageView 移动到用户选择的任何一行。

如何修改此代码,以便每次按下向上按钮时它严格向上移动一行,每次按下向下按钮时向下移动一行?

最佳答案

从 NSIndexPath 对象中的 didSelectRowAtIndexPath: 方法中最后选定的行中获取 TableView 单元格的索引路径。

 - (void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

[self.view bringSubviewToFront:_imageView];
self.indexPath = indexPath;

[UIView animateWithDuration:.3 animations:^{
CGRect rect = [self.view convertRect:[tableView rectForRowAtIndexPath:indexPath] fromView:tableView];
_imageView.frame = rect;
}];

}

在按钮操作方法中处理indexPath,以查看上方/下方的单元格是否位于同一部分,在这种情况下递增/递减行,如果在其他部分,您可能需要计算新的indexPath。

-(IBAction)btnActn:(id)sender{
if(btn.tag ==0){
self.indexPath=[NSIndexPath indexPathForRow:self.indexPath.row+1 inSection:self.indexPath.section];
//Put animation code or call animation function
}
}

然后使用您已经使用的相同方法获取框架上方或下方一个单元格的矩形,并将 _imageView 的位置转换为新位置。

关于ios - iOS中需要控制UIImageView在UITableView上的移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16950332/

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