UITableView(可滚动到顶部和底部)

#import "RootViewController.h"
#define width [UIScreen mainScreen].bounds.size.width
#define height [UIScreen mainScreen].bounds.size.height
#define topH 64
@interface RootViewController ()<UITableViewDataSource,UITableViewDelegate>

@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<100;i++)
    {
        [self.rowData addObject:[NSString stringWithFormat:@"Row: %i",i]];
    }
    [self.tableView reloadData];
}

- (void)scrollToTop:(UIButton *)sender
{
    NSIndexPath *topRow = [NSIndexPath 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
时间: 2024-11-07 03:24:59

UITableView(可滚动到顶部和底部)的相关文章

实现移动端顶部与底部固定,内容区优化的效果

实现顶部与底部固定的效果十分容易,且很多人都会选择用这个方式,就是顶部position:fixed,底部也position:fixed.实现的效果就像下面两张图,container区域是布满整个屏幕的,且滚动条也是滚动在整个屏幕中,调内容区时只能调节高度.    其实还有一种方式可以实现较好的效果,就是内容区只在顶部和底部的中间,内容部分和滚动条也只是中间区域滚动 实现代码: <meta name="viewport" content="width=device-wid

jQuery&amp;CSS 顶部和底部固定浮动工具栏 兼容IE6

现在常常能看到一些网站(如:新浪微博和花瓣)导航条或工具栏固定在网页的顶部或其他地方.这样的布局方式,能便于用户点击和“曝光率”,不用每次都要把网页拖动到某个特定位置才能点击或看到. 其实这样的布局方式很早就有,只是没有那么个契机推广开吧.做起来也不复杂,只要设置一个小小的属性“position:fixed”便能完成,最关键的无不呼在于要兼容IE6而已. 首先我们来看HTML代码,是不是超简单?这里提供的只是一个简单的框架,实际应用的时候,只要把想要的元素添加东西就在这区域内加就行. HTML

[jquery]判断页面滚动到顶部和底部(适用于手机web加载)

//判断页面滚动到顶部和底部 $(window).scroll(function(){ var doc_height = $(document).height(); var scroll_top = $(document).scrollTop(); var window_height = $(window).height(); if(scroll_top == 0){ alert("到顶啦"); }else if(scroll_top + window_height >= doc

jquery判断滚动条是否到达顶部或者底部

<script> $(function(){ $(window).scroll(function(){ //离顶部的距离=0 //方法一:var isTop=$(this).scrollTop(); //方法二:var isTop=$(document).scrollTop(); //var isTop=$("body").scrollTop();//ie错误 //var isTop=$(document.body).scrollTop();//ie错误 //可视窗口大小+

Android界面,固定顶部、底部导航。中间可滑动

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="match_parent" android:layout_width="match_parent" android:b

ios程序,顶部和底部产生空白——程序不能全屏运行

在开发过程中,遇到过这样的问题,整个程序不能以全屏状态运行,顶部和底部出现空白,如下图所示: 这样的原因是:设置的启动页不合适,设置大小合适的启动页就好了 ios程序,顶部和底部产生空白--程序不能全屏运行

jquery实现平滑滚动到顶部、底部、或者指定位置(个人随笔)

个人随笔,欢迎指教. 代码如下: <!doctype html> <html> <head> <meta charset="utf-8"> <title>jquery实现平滑滚动到顶部.底部.或者指定地方</title> <script type="text/javascript" src="JavaScript/jquery-1.11.2.min.js"><

ScrollView监听滑动到顶部和底部的方法

不需要监听滑动位置,只需要重写ScrollView的onOverScrolled和stopNestedScroll方法就可以了 public class ReadScrollView extends ScrollView{ private int mScrollY = 0; private boolean mClampedY = false; public ReadScrollView(Context context) { super(context); } public ReadScrollV

滑到离顶部一定距离显示,返回顶部和底部2

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style type="text/css"> * { margin: 0; padding: 0; } #icon_top_end{ display: none;} #back-top {