iOS UITableView点击按钮滚到顶部
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS UITableView点击按钮滚到顶部相关的知识,希望对你有一定的参考价值。
#import <UIKit/UIKit.h> @interface AppDelegate : UIResponder <UIApplicationDelegate> @property (strong, nonatomic) UIWindow *window; @end
#import "AppDelegate.h" #import "RootViewController.h" @interface AppDelegate () @end @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; // Override point for customization after application launch. self.window.backgroundColor = [UIColor whiteColor]; self.window.rootViewController = [[RootViewController alloc] init]; [self.window makeKeyAndVisible]; return YES; } @end
#import <UIKit/UIKit.h> @interface RootViewController : UIViewController @end
#import "RootViewController.h" @interface RootViewController ()<UITableViewDataSource,UITableViewDelegate> { UITableView *_tableView; NSMutableArray *datas; } @end @implementation RootViewController - (void)loadView{ [super loadView]; _tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 64, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height - 64) style:UITableViewStylePlain]; _tableView.dataSource = self; _tableView.delegate = self; [self.view addSubview:_tableView]; [self initializeButtonWithFrame:CGRectMake(0, 0,100, 64) title:@"滚到顶部" action:@selector(scrollToTop:)]; [self initializeButtonWithFrame:CGRectMake([UIScreen mainScreen].bounds.size.width - 100, 0, 100, 60) title:@"滚到底部" action:@selector(scrollToButtom:)]; } - (void)viewDidLoad { [super viewDidLoad]; self.title = @"测试"; datas = [[NSMutableArray alloc] init]; for (int i = 0; i < 30; i++) { NSString *str = [NSString stringWithFormat:@"row:%d",i]; [datas addObject:str]; } } /** * 初始化按钮 * * @param frame 尺寸 * @param title 标题 * @param aSEL 按钮的方法 */ - (void)initializeButtonWithFrame:(CGRect)frame title:(NSString*)title action:(SEL)aSEL{ UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom]; btn.backgroundColor = [UIColor grayColor]; btn.frame = frame; [btn setTitle:title forState:0]; [btn addTarget:self action:aSEL forControlEvents:UIControlEventTouchUpInside]; btn.backgroundColor = [UIColor grayColor]; [self.view addSubview:btn]; } - (void)scrollToTop:(UIButton*)sender{ NSLog(@"滚到顶部"); NSIndexPath *topRow = [NSIndexPath indexPathForRow:0 inSection:0]; [_tableView scrollToRowAtIndexPath:topRow atScrollPosition:UITableViewScrollPositionTop animated:YES]; } - (void)scrollToButtom:(UIButton*)sender{ NSLog(@"滚到底部"); NSIndexPath *buttomRow = [NSIndexPath indexPathForRow:datas.count - 1 inSection:0]; [_tableView scrollToRowAtIndexPath:buttomRow atScrollPosition:UITableViewScrollPositionBottom animated:YES]; } #pragma mark -- tableView的代理 -- - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{ return 1; } - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ return datas.count; } - (UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ static NSString *identifier = @"cell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier]; if (!cell) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier]; } cell.textLabel.text = datas[indexPath.row]; return cell; } @end
以上是关于iOS UITableView点击按钮滚到顶部的主要内容,如果未能解决你的问题,请参考以下文章
vue 点击路由跳转(地址重复)报错以及路由跳转滚动条未回滚到顶部问题
再次点击当前标签栏时如何在 UITableView 中滚动到顶部?
关于导航自定义视图距离边界问题,点击状态栏TableView不能回滚到顶部问题