UIKitHelper 0.0.3

UIKitHelper 0.0.3

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布最后发布2014年12月

未声明的所有者 维护。



  • 张宗辉

UIKitHelper 是一组 UIKit 类的集合,使得一些常见的视图行为易于实现,如轻触背景隐藏键盘、无限滚动视图等。


1. ISPageScrollView

描述

ISPageScrollView 是一个针对大量页面显示优化的 UIScrollView 子类。它使用懒加载机制来保持内存中只有前几个页面和后几个页面,从而最小化内存使用。

属性

id<ISPageScrollViewDataSource> dataSource: 如 UITableViewDataSource,它从数据源对象请求每个页面上显示的视图。

NSInteger numberOfReusablePages: 内存中维护的页数。这个数字应该是奇数(例如:5 = 当前显示页面 + 2 个前面的页面 + 2 个后面的页面)

NSInteger numberOfPages: 总页数

NSMutableDictionary readonly scrollViewAvailablePages: 这是一个存储内存中页面视图的字典。字典的键是页码索引的 NSNumbers。每个键的值是一个 UIView 对象。

用法

它可以在 xcode 中像 UIScollView 一样创建,也可以以编程方式创建。

ISPageScrollView *pageScrollView = [[ISPageScrollView alloc] initWithFrame:CGRectMake(0, 0, 200, 100)];
pageScrollView.dataSource = self;
pageScrollView.numberOfPages = 10;
pageScrollView.numberOfReusableViews = 5;

[pageScrollView displayPage:0];

您还需要像 UITableView 一样实现数据源方法,以便页面滚动视图知道显示什么。

@interface ViewController () <ISPageScrollViewDataSource>

@end

@implementation ViewController
…

#pragma mark - ISPageScrollViewDataSource

- (UIView *)viewForScrollView:(UIScrollView *)scrollView Page:(NSInteger)pageIndex
{
    UIView *pageView = [[UIView alloc] initWithFrame:scrollView.frame];
    pageView.backgroundColor = [UIColor colorWithRed:pageIndex * 10 / 255.0 green:pageIndex * 10 / 255.0 blue:pageIndex * 10 / 255.0 alpha:1.0];
    return pageView;
}

…
@end

2. AutoHideKeyboardViewController

描述

AutoHideKeyboardViewController 是 UIViewController 的子类,它启用了轻触背景隐藏键盘的行为。

用法

要使您的 viewcontroller 在背景轻触时隐藏键盘,只需两步。

步骤 1: 使您的 viewcontroller 成为 AutoHideKeyboardViewController 的子类而不是 UIViewController

#import "AutoHideKeyboardViewController.h"

@interface ViewController : AutoHideKeyboardViewController

步骤 2: 如果您在您的页面上有任何 UITextView 或 UITextField,将它们的代理设置为您的 viewcontroller。

就是这样!


3. AutoHideKeyboardTableViewController

用法和表现与 AutoHideKeyboardViewController 相同。这是为 UITableView 实现按背景缩小键盘的行为。

许可证


UIKitHelper 在MIT许可下可用。有关更多信息,请参阅LICENSE文件。