技术好文:UITableView(可滚动到顶部和底部)

简介: 技术好文:UITableView(可滚动到顶部和底部)

#import "RootViewController.h"


#define width 【UIScreen mainScreen】.bounds.size.width


#define height 【UIScreen mainScreen】.bounds.size.height


#define topH 64


@interface RootViewController ()


@property (nonatomic, strong) UITableView tableView;


@property (nonatomic, strong) NSMutableArray rowData;


@end


@implementation RootViewController


- (void)loadView


{


【super loadView】;


// 初始化view


UIView aView = 【【UIView alloc】 initWithFrame:CGRectMake(0, 0, width, topH)】;


aView.backgroundColor = 【UIColor grayColor】;


【self.view addSubview:aView】;


// 初始化leftButton


SEL leftSel = NSSelectorFromString(@"scrollToTop:");


UIButton leftBtn = 【self setupButtonWithTitle:@"top" withFrame:CGRectMake(0, 20, 80, topH - 20) withSelector:leftSel】;


【self.view addSubview:leftBtn】;


// 初始化rigthButton


SEL rightSel = NSSelectorFromString(@"scrollToBottom:");


UIButton rightBtn = 【self setupButtonWithTitle:@"bottom" withFrame:CGRectMake(width - 80 - 20, 20, 80, topH-20) withSelector:rightSel】;


【self.view addSubview:rightBtn】;


// 初始化_tableView


self.tableView = 【【UITableView alloc】 initWithFrame:CGRectMake(0, topH,width, height - topH) style:UITableViewStylePlain】;


self.tableView.dataSource = self;


self.tableView.delegate = self;


【self.view addSubview:self.tableView】;


}


/**


初始化Button



@param aTitle Button的标题


@param aFrame Button的框架


@param aSelector Button的方法



@return Button


/


- (UIButton )setupButtonWithTitle:(NSString )aTitle withFrame:(CGRect)aFrame withSelector:(SEL)aSelector


{


UIButton btn = 【UIButton buttonWithType:UIButtonTypeRoundedRect】;


btn.frame = aFrame;


【btn setTitle:aTitle forState:0】;


btn.titleLabel.font = 【UIFont systemFontOfSize:25】;


【btn addTarget:self action:aSelector forControlEvents:UIControlEventTouchUpInside】;


return btn;


}


- (void)viewDidLoad {


【super viewDidLoad】;


【self loadData】;


}


/*


加载数据


/


-(void)loadData


{


if (self.rowData!=nil)


{


【self.rowData removeAllObjects】;


self.rowData=nil;


}


self.rowData = 【【NSMutableArray alloc】 init】;


for (int i=0 ; i[span style="color: rgba(128, 0, 128, 1)">100;i++)


{


【self.rowData addObject:【NSString stringWithFormat:@"Row: %i",i】】;


}


【self.tableView reloadData】;


}


- (void)scrollToTop:(UIButton )sender


{


NSIndexPath topRow = 【NSIndexPath //代码效果参考:http://www.lyjsj.net.cn/wx/art_23823.html

indexPathForRow:0 inSection:0】;

【self.tableView scrollToRowAtIndexPath:topRow atScrollPosition:UITableViewScrollPositionTop animated:YES】;


}


- (void)scrollToBottom:(UIButton )sender


{


NSIndexPath bottomRow = 【NSIndexPath indexPathForRow:【self.rowData count】-1 inSection:0】;


【self.tableView scrollToRowAtIndexPath:bottomRow atScrollPosition:UITableViewScrollPositionBottom animated:YES】;


}


#pragma mark -UITableView delegates-


- (NSInteger)numberOfSectionsInTableView:(UITableView )tableView {


return 1;


}


- (NSInteger)tableView:(UITableView )tableView numberOfRowsInSection:(NSInteger)section {


return 【self.rowData count】;


}


- (UITableViewCell )tableView:(UITableView )tableView cellForRowAtIndexPath:(NSIndexPath )indexPath {


static NSString CellIdentifier = @"Cell";


UITableViewCell cell = (UITableViewCell *)【tableView dequeueReusableCellWithIdentifier:CellIdentifier】;


if (cell == nil) {


cell = 【【UITableViewCell alloc】 initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier】;


}


cell.selectionStyle = UITableViewCellSelectionStyleNone;


cell.textLabel.text = 【self.rowData objectAtIndex:indexPath.row】;


return cell;


}


@end

相关文章
|
小程序 开发者
小程序顶部自定义导航栏添加背景图的实现
小程序顶部自定义导航栏添加背景图的实现
202 0
|
4月前
|
前端开发 JavaScript
原生撸移动端顶部滚动菜单栏,实现可滚动控制滚动边界动态样式
本文介绍了如何使用原生HTML、CSS和JavaScript创建一个移动端可滚动的顶部菜单栏。文章提供了详细的HTML结构、CSS样式和JavaScript代码,实现了菜单项的横向滚动、边界控制和动态样式变化。同时,还展示了如何通过触摸事件监听来控制菜单项的滚动和激活状态。
80 2
原生撸移动端顶部滚动菜单栏,实现可滚动控制滚动边界动态样式
|
5月前
|
前端开发
导航栏也疯狂:CSS动画让导航栏活起来,跟随鼠标滑动!
导航栏也疯狂:CSS动画让导航栏活起来,跟随鼠标滑动!
|
6月前
|
JavaScript 容器
Vue 动画 —— 滑动切换动画 / 滑动翻页过渡动画——从顶部到底部、从底部到顶部、从左侧到右侧、从右侧到左侧
Vue 动画 —— 滑动切换动画 / 滑动翻页过渡动画——从顶部到底部、从底部到顶部、从左侧到右侧、从右侧到左侧
852 0
|
8月前
|
前端开发
Flutter笔记:光影动画按钮、滚动图标卡片组等
Flutter笔记:光影动画按钮、滚动图标卡片组等
89 0
layui列表页滚动时弹出窗无法居中的解决方案
layui列表页滚动时弹出窗无法居中的解决方案
135 0
|
Android开发
玩转AppBarLayout,更酷炫的顶部栏
玩转AppBarLayout,更酷炫的顶部栏
玩转AppBarLayout,更酷炫的顶部栏
刚进入页面时UIScrollView没有滑动到顶部
刚进入页面时UIScrollView没有滑动到顶部
87 0
html+css实战186-底部
html+css实战186-底部
104 0
html+css实战186-底部
|
前端开发 开发者 容器
吸顶导航 |学习笔记
快速学习 吸顶导航
142 0

热门文章

最新文章