MSScrollView 是一个基于块的 UIScrollView 替代品,在滚动时执行处理块,而不是使用代理。也通知以下信息。了解在调用 didScroll 块时的情况。
滚动视图方向
HORIZONTAL_SCROLL_MODE
VERTICAL_SCROLL_MODE
滚动视图操作
拖动
拖动后
选项
- 嵌入页面控制器(currentPage, numberOfPages 自动更新。)
关于 MSScrollView 的更多信息,请参阅头文件。
将提供的 MSScrollView 文件夹拖入您的项目。
这些类是在 ARC 下编写的。如果您不是在全项目范围内使用 ARC,请确保为每个文件指定 'Compile Sources' 构建阶段的 -fobjc-arc
。
#import "MSScrollView.h"
- (void)viewDidLoad
{
self.myScrollView = [[MSScrollView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
_myScrollView.contentSize = CGSizeMake(320*10, IS_IPHONE_5?568:480);
_myScrollView.pagingEnabled = YES;
_myScrollView.backgroundColor = [UIColor whiteColor];
_myScrollView.mode = HORIZONTAL_SCROLL_MODE;
for(int i = 0; i<10; i++)
{
UIView *view = [[UIView alloc] initWithFrame:(CGRect){320*i,0,320,IS_IPHONE_5?568:480}];
view.backgroundColor = [UIColor colorWithRed:(arc4random()%100)/100.0f green:(arc4random()%100)/100.0f blue:(arc4random()%100)/100.0f alpha:1.0f];
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 320, 60)];
CGRect rect = label.frame;
rect.origin.y = (view.frame.size.height - label.frame.size.height*2)/2;
label.frame = rect;
label.backgroundColor = [UIColor clearColor];
label.text = [NSString stringWithFormat:@"Page %d", i+1];
label.font = [UIFont systemFontOfSize:22.0f];
label.textAlignment =NSTextAlignmentCenter;
label.textColor = [UIColor whiteColor];
[view addSubview:label];
[_myScrollView addSubview:view];
}
[self.view addSubview:_myScrollView];
[_myScrollView setPageControl:CGPointMake(160,IS_IPHONE_5?520:430)];
_myScrollView.didscroll = ^(BOOL isDecelerating, ScrollViewDirection direction, ScrollViewAction action)
{
NSLog(@"didScroll | isDecelerating:%d, direction:%d, action:%d", isDecelerating, direction, action);
};
_myScrollView.beginDragging = ^{
NSLog(@"beginDragging");
};
_myScrollView.endDragging = ^{
NSLog(@"endDragging");
};
_myScrollView.beginDecelerating = ^{
NSLog(@"beginDecelerating");
};
_myScrollView.endDecelerating = ^{
NSLog(@"endDecelerating");
};
[super viewDidLoad];
}
软件许可协议 (BSD 许可)
版权所有 (c) 2013 Shim Minseok。保留所有权利。
重新分发和使用的源代码和二进制形式,无论是否修改,只要符合以下条件
源代码的重新分发必须保留上述版权声明、本条件列表和以下免责声明。
二进制形式的重新分发必须在提供的文档和/或其他材料中重新生产上述版权声明、本条件列表和以下免责声明。
未经 Infrae 或其贡献者明确的先前书面许可,不得使用 Infrae 或其贡献者的名称来批准或推广源自本软件的产品。
本软件是根据版权所有者和贡献者的“现状”提供的,没有任何明确的或暗示的保证,包括但不限于适销性和适用于特定目的的暗示性保证。在任何情况下,Infrae 或贡献者均不承担任何直接、间接、偶然、特殊、示范性或后果性的损害赔偿责任(包括但不限于,因采购替代商品或服务、使用、数据或利润的损失;或业务中断)无论出于何种原因,无论基于合同、严格责任或侵权(包括纰漏或其他方式)或由此产生的责任,即使已通知本软件可能造成此类损害。