我的代码我的坑(十九) —— 关于tableView索引点击的自定义滚动问题(一)

版本记录

版本号 时间
V1.0 2022.09.25 星期日

前言

做了好几个APP,碰到了大大小小的很多坑,以前碰到坑,解决了就结束了,这里想把自己碰到的坑记录下来,一来给自己备查二来希望可以帮助到大家。感兴趣的可以关注下,也欢迎大家补充留言,感兴趣的看上面几篇文章。
1. 我的代码我的坑(一) —— 自签名证书导致请求取消的问题(一)
2. 我的代码我的坑(二) —— UIImageView动画点击后动画和图片消失的问题(一)
3. 我的代码我的坑(三) —— iOS9系统WKWebView加载页面白板的问题(一)
4. 我的代码我的坑(四) —— iOS12系统自定义渐变色UISwitch手机横屏的异常问题(一)
5. 我的代码我的坑(五) —— 不可编辑状态的UITextView文本高度大于视图高度默认滚动到底部的问题(一)
6. 我的代码我的坑(六) —— UITextField输入长度自动截取时汉字和拼音带来的末位截取不能正常输入汉字的问题(一)
7. 我的代码我的坑(七) —— UIImageView做序列帧动画结束后没有回调并且“隐藏”(一)
8. 我的代码我的坑(八) —— iOS 13.1.2 Debug调试模式系统layoutSubviews中修改frame循环调用导致的崩溃(一)
9. 我的代码我的坑(九) —— 系统键盘拼音全键无法正常联想以及输入汉字高亮区识别不计入长度计数的问题(一)
10. 我的代码我的坑(十) —— iOS9 Xib实例化的UITableViewCell中UIButton和UISwitch等控件的IBAction点击无响应的问题(一)
11. 我的代码我的坑(十一) —— macOS Mojave 和 xcode 11.1 (11A1027)环境下运行iphonex以上流海屏xcode install时xocde崩溃闪退的问题(一)
12. 我的代码我的坑(十二) —— iOS10字体DIN Condense Bold字体显示不全顶部被切割的问题(一)
13. 我的代码我的坑(十三) —— 状态栏高度的动态计算(一)
14. 我的代码我的坑(十四) —— Xcode 12.5中React编译不过的问题(一)
15. 我的代码我的坑(十五) —— dispatch_once导致的死锁的问题(一)
16. 我的代码我的坑(十六) —— 关于无法验证包完整性的问题(一)
17. 我的代码我的坑(十七) —— 关于UniversalLink校验不通过的问题(一)
18. 我的代码我的坑(十八) —— 关于UITableView分页数据滚动到顶部异常的问题(一)

问题描述

我们有时候的需求是给tableview的右侧添加索引,如下图所示:

这里如果我们点击右侧的索引,就会调用下面的索引方法:

- (NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index{
    NSIntegrer aIndex = 0;
    return aIndex;
}

这里title返回的值就是右侧的索引值,index是点击的索引在所有索引中的序列。这个方法的返回值就是要返回要滚动到的section索引。但是有时候只有一个section,里面有很多row,这个时候这个代理方法如果返回0,那么点击右侧索引就会自动进行滚动到section=0的地方(带着动画)。

也就是说只有一个section的时候在这里没办法进行滚动的。


问题解决

前面那个点击索引回调的代理方法,我们返回-1,一个小于0的数,系统的滚动方法和动画就失效了。

- (NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index{
    NSInteger characterIndex = 0;//想滚动到的index
    NSIndexPath *selectIndexPath = [NSIndexPath indexPathForRow:characterIndex inSection:0];
    [self.tableView scrollToRowAtIndexPath:selectIndexPath atScrollPosition:UITableViewScrollPositionBottom animated:NO];
    return -1;
}

返回-1,就不会触发系统的滚动,在里面可以做自定义的滚动。

后记

本篇主要讲述了关于tableView索引点击的自定义滚动问题,感兴趣的给个赞或者关注~~~

你可能感兴趣的:(我的代码我的坑(十九) —— 关于tableView索引点击的自定义滚动问题(一))