ios - 如何使用 UISwipeGestureRecognizer 滑动以滑入并刷新相同的 uitableview

标签 ios sdk uiscrollview swipe uiswipegesturerecognizer

这个问题不太可能帮助任何 future 的访客;它只与一个小地理区域、一个特定时刻或一个非常狭窄的情况相关,而这些情况通常不适用于互联网的全局受众。如需帮助使这个问题更广泛地适用,visit the help center .




8年前关闭。




我希望使用 UISwipeGestureRecognizer 的滑动来更新 UITableView……并让它看起来像是从右侧(或左侧)滑入,然后简单地用新数据刷新当前 UITableView 的数据。

好的...这里更详细。我在 UINavigationController 中有一个 UITableView。该表包含特定日期的数据——主要是今天的笔记、 session 的时间和日期等。我想允许向右或向左滑动(使用 UISwipeGestureRecognizer)触发当前表的滑动和滑动与第二天的事件(或前一天......取决于侧面方向)的新表。我尝试这样做的方式只是拥有当前的 ScheduleViewController在设置新日期( newDate )之后调用自身。好的,这行得通,有点。 swipeScheduleViewController 不会填满整个 iphone 屏幕。它缺少底部的选项卡栏区域......并且因为它位于 UINavigationController 中,因此从该选项卡返回到该选项卡会导致问题。另外,这意味着随着用户在时间上前进和后退,新实例的数量会非常大。这是站不住脚的。

ScheduleViewController *swipeScheduleViewController = [[[ScheduleViewController alloc] initWithNibName:@"ScheduleView-iPhone" bundle:nil] retain];
swipeScheduleViewController.newDate = [NSDate date]; // (increment this or decrement it)
CATransition *transition = [CATransition animation];
transition.duration = 0.75;
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
transition.type = kCATransitionPush;
transition.subtype = kCATransitionFromLeft;
transition.delegate = self;
[self.view.layer addAnimation:transition forKey:nil];
[self.view addSubview:swipeScheduleViewController.view];
//[swipeScheduleViewController release]; // <-- leaving this in causes crash due to "Deallocated instance" during cellforRowAtIndexPath

所以,然后我在想:有没有办法设置newDate (不是问题)然后刷新当前表,(问题来了:)模拟 人们期望的滑入/滑出功能。

还是我认为这是完全错误的方式?之前有人建议在水平滚动的 UIScrollView 中以编程方式创建 UITableView —— 但是这个 tableview 有很多特定的东西,除了将 UIViews 等链接到我的 .m文件

编辑

也许我没有完全解释自己,所以这里是:我需要整个 table 从屏幕上滑下来并过渡到另一个的样子。没有如果的和的或但是的。感谢那些建议滑动行的人......但他们不提供这种灵 active ......

我不想显得忘恩负义,但我并不完全理解拥有一个包含 UITableViw(在 UINavigationController 内)的 Nib / View 并将其推离屏幕的方法——用包含 UITableView 的相同 Nib / View 替换它.

我质疑的原因,马特,你的解决方案是,除非我不“注释掉”[swipeScheduleViewController release];在上面的代码中,我得到 cellforRowAtIndexPath 期间的“已释放实例”错误。这似乎表明 iOS 没有将 swipeScheduleViewController 保存在内存中并实例化,除非我释放它。不释放它,从而防止崩溃——导致对象在内存中,从而导致内存泄漏。这就是为什么我说这样做很危险(在对您的回答的评论中)谢谢!

最佳答案

考虑使用 reloadRowsAtIndexPaths:withRowAnimation: .可用的动画之一是从右侧(或左侧)滑入。

关于ios - 如何使用 UISwipeGestureRecognizer 滑动以滑入并刷新相同的 uitableview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16425677/

相关文章:

ios - 按钮卡在突出显示

ios - 根据选择器选择IOS确定Segue,swift

ios - 将 JSON 字符串转换为模型对象失败

ios - MFMailComposeViewController IOS

android - Neura 中的事件标识符是什么?

ios - XIB 未在 UIScrollView 中正确加载

ios - 有没有办法使用用户默认值来更改我的所有 IOS 应用程序页面的背景颜色?

iphone - 如何将复选框添加到 UITableViewCell?

iphone - iOS 角标(Badge)编号实时更新

ios - UIPageViewController 带有一张固定的背景图片