133自动滚动到被选中单元格(扩展知识:滚动到头部和底部)

效果如下:

ViewController.h

1 #import <UIKit/UIKit.h>
2
3 @interface ViewController : UITableViewController
4 @property (strong, nonatomic) NSMutableArray *mArrDataSource;
5
6 @end

ViewController.m

  1 #import "ViewController.h"
  2
  3 @interface ViewController ()
  4 - (void)layoutUI;
  5 - (UIBarButtonItem *)barButtonItemForToolbar:(NSString *)title selectorName:(NSString *)selectorName;
  6 - (void)scrollToTopDidPush:(UIBarButtonItem *)sender;
  7 - (void)scrollToSelectedRowDidPush:(UIBarButtonItem *)sender;
  8 - (void)scrollToBottomDidPush:(UIBarButtonItem *)sender;
  9 @end
 10
 11 @implementation ViewController
 12 #define kRowCount 64
 13
 14 - (void)viewDidLoad {
 15     [super viewDidLoad];
 16
 17     [self layoutUI];
 18 }
 19
 20 - (void)didReceiveMemoryWarning {
 21     [super didReceiveMemoryWarning];
 22     // Dispose of any resources that can be recreated.
 23 }
 24
 25 - (void)viewDidAppear:(BOOL)animated {
 26     [super viewDidAppear:animated];
 27
 28     [self.navigationController setNavigationBarHidden:NO animated:animated];
 29     [self.navigationController setToolbarHidden:NO animated:animated];
 30 }
 31
 32 - (void)layoutUI {
 33     _mArrDataSource = [[NSMutableArray alloc] initWithCapacity:kRowCount];
 34     for (NSUInteger i=0; i<kRowCount; i++) {
 35         [_mArrDataSource addObject:[NSNumber numberWithUnsignedInteger:i]];
 36     }
 37     [self.tableView setAllowsSelection:YES]; //设置在普通状态中,是否允许选中;默认值为YES
 38     [self.tableView setAllowsSelectionDuringEditing:YES]; //设置在编辑状态中,是否允许选中;默认值为YES
 39
 40     self.navigationItem.title = @"自动滚动到被选中单元格";
 41     UIBarButtonItem *barBtnScrollToTop = [self barButtonItemForToolbar:@"滚动到头部" selectorName:@"scrollToTopDidPush:"];
 42     UIBarButtonItem *barBtnScrollToSelectedRow = [self barButtonItemForToolbar:@"滚动到被选中单元格" selectorName:@"scrollToSelectedRowDidPush:"];
 43     UIBarButtonItem *barBtnScrollToBottom = [self barButtonItemForToolbar:@"滚动到底部" selectorName:@"scrollToBottomDidPush:"];
 44     self.toolbarItems = @[barBtnScrollToTop, barBtnScrollToSelectedRow, barBtnScrollToBottom];
 45 }
 46
 47 - (UIBarButtonItem *)barButtonItemForToolbar:(NSString *)title selectorName:(NSString *)selectorName {
 48     UIBarButtonItem *barBtnItem = [[UIBarButtonItem alloc] initWithTitle:title
 49                                                                    style:UIBarButtonItemStyleDone
 50                                                                   target:self
 51                                                                   action:NSSelectorFromString(selectorName)];
 52     return barBtnItem;
 53 }
 54
 55 - (void)scrollToTopDidPush:(UIBarButtonItem *)sender {
 56     [self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]
 57                           atScrollPosition:UITableViewScrollPositionTop
 58                                                       animated:YES];
 59 }
 60
 61 - (void)scrollToSelectedRowDidPush:(UIBarButtonItem *)sender {
 62     [self.tableView scrollToNearestSelectedRowAtScrollPosition:UITableViewScrollPositionNone
 63                                                       animated:YES];
 64
 65     /*
 66      typedef NS_ENUM(NSInteger, UITableViewScrollPosition) {
 67      UITableViewScrollPositionNone,
 68      UITableViewScrollPositionTop,
 69      UITableViewScrollPositionMiddle,
 70      UITableViewScrollPositionBottom
 71      };                // scroll so row of interest is completely visible at top/center/bottom of view
 72      */
 73 }
 74
 75 - (void)scrollToBottomDidPush:(UIBarButtonItem *)sender {
 76     [self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:(kRowCount - 1) inSection:0]
 77                           atScrollPosition:UITableViewScrollPositionBottom
 78                                   animated:YES];
 79 }
 80
 81 #pragma mark - TableView
 82 - (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
 83     return @"列表";
 84 }
 85
 86 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
 87     return 1;
 88 }
 89
 90 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
 91     return kRowCount;
 92 }
 93
 94 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
 95     static NSString *cellIdentifier = @"cellIdentifier";
 96     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
 97     if (!cell) {
 98         cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
 99     }
100
101     NSInteger row = indexPath.row;
102     cell.textLabel.text = [_mArrDataSource[row] stringValue];
103
104     return cell;
105 }
106
107 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
108
109 }
110
111 @end

AppDelegate.h

1 #import <UIKit/UIKit.h>
2
3 @interface AppDelegate : UIResponder <UIApplicationDelegate>
4 @property (strong, nonatomic) UIWindow *window;
5 @property (strong, nonatomic) UINavigationController *navigationController;
6
7 @end

AppDelegate.m

 1 #import "AppDelegate.h"
 2 #import "ViewController.h"
 3
 4 @interface AppDelegate ()
 5 @end
 6
 7 @implementation AppDelegate
 8
 9 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
10     _window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
11     ViewController *viewController = [[ViewController alloc] init];
12     _navigationController = [[UINavigationController alloc] initWithRootViewController:viewController];
13     _window.rootViewController = _navigationController;
14     //[_window addSubview:_navigationController.view]; //当_window.rootViewController关联时,这一句可有可无
15     [_window makeKeyAndVisible];
16     return YES;
17 }
18
19 - (void)applicationWillResignActive:(UIApplication *)application {
20 }
21
22 - (void)applicationDidEnterBackground:(UIApplication *)application {
23 }
24
25 - (void)applicationWillEnterForeground:(UIApplication *)application {
26 }
27
28 - (void)applicationDidBecomeActive:(UIApplication *)application {
29 }
30
31 - (void)applicationWillTerminate:(UIApplication *)application {
32 }
33
34 @end
时间: 2024-11-07 14:33:54

133自动滚动到被选中单元格(扩展知识:滚动到头部和底部)的相关文章

DataGridView控件选中单元格、直接在控件中修改信息

                                                           原文取自个人博客:www.jycoder.com欢迎访问 一,获取DataGridView控件中的当前单元格 若要与DataGridView进行交互,通常要求用编程的方式发现哪个单元格出于活动状态.如果需要更改单元格,可通过DataGridView控件的CurrentCell属性来获取当前单元格的信息: 语法如下: Public DataGridViewCell CurrentC

132设置被选中单元格的背景颜色(扩展知识:设置被选中单元格的背景图片)

效果如下: ViewController.h 1 #import <UIKit/UIKit.h> 2 3 @interface ViewController : UITableViewController 4 @property (strong, nonatomic) NSArray *arrDataSource; 5 @property (strong, nonatomic) NSArray *arrSelectionStyle; 6 7 @end ViewController.m 1 #i

FineReport单元格扩展与父子格设置

1.描述 在讲述报表设计之前,首先介绍一下FineReport报表制作的几个基本概念,本章节介绍FineReport报表赖以生存的单元格扩展. 扩展,顾名思义,就是由一变多,那么单元格扩展就是指在web端查看模板效果的时候,原来的单元格由一个变成了多个,这就是单元格扩展,如下图: 2. 单元格扩展 大家对Excel应该都不陌生,用过Excel的人都知道,其单元格只有2个方向,横向和纵向,而FineReport恰恰是一款类Excel的报表工具,其单元格也一样,因此,FineReport报表中单元格

Extjs GridPanel 鼠标拖动选中单元格

本文主要是实现了一个拖动选择单元格并计算的功能 CalcSelecitonModel.js下载地址

VBA返回选中单元格区域的行数、列数,以及活动单元格的行号和列号

Private Sub Worksheet_SelectionChange(ByVal Target As Range)    Dim rows_count As Integer    Dim rows_id As Integer    Dim column_count As Integer    Dim column_id As Integer    column_count = Selection.Columns.Count '返回选择区域列数    rows_id = ActiveCell

OFFICE2013实现选中单元格所在行、列高亮显示

在你要实现此功能的工作表标签右击,在弹出的菜单中选择编辑代码,然后输入下面代码保存即可! 如没有出现效果,则可能是禁用了宏的关系.所以要在安全选项中启用宏选项. Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim Rng As Range Set Rng = Target.Range("a1") Cells.Interior.ColorIndex = 0 '清除所有背景色 Rng.EntireColumn.I

Excel选中单元格时自动高亮所在行列

"工作表"右键,"查看代码", VBA代码编辑器中,选择"Worksheet" 在Worksheet_SelectionChange函数中添加如下代码: Target.Parent.Cells.Interior.ColorIndex = xlNone Target.EntireColumn.Interior.ColorIndex = 36 Target.EntireRow.Interior.ColorIndex = 36 最后整个函数如下: Pr

Swift - 异步加载各网站的favicon图标,并在单元格中显示

下面是一个简单的应用,表格视图的各个单元格自动异步加载各个网站的favicon图标,并显示出来. 主要是复习下如何自定义单元格,单元格中图片的异步加载,以及didSet的用法. 效果图如下: 操作步骤: (1)先创建单元格类 - FaviconTableViewCell.swift 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39

Excel应该这么玩——1、命名单元格

Excel应该这么玩--1.命名单元格 命名单元格:通过名称来引用单元格中的值,常用于引用固定不变的值. 下面举个栗子: 1.土掉渣的方法 平时加班工资按时薪的1倍计算,节假日加班工资按2倍计算.给出员工的时薪和各类加班时数,求加班费.一般会输入如下工资: 如果是新手看到这个公式,第一眼肯定不理解其中的1.2.3表示什么含义.怎么把其中的数字换成容易理解的概念呢? 2.创建系数表 如下,先创建一个列表,把各类加班的时薪倍率列举出来.然后选择B3,在左上角显示单元格地址的名称框输入平时加班倍率,下