您的位置:首页 > 产品设计 > UI/UE

UIScrollView的分页滑动(page可以不一个屏幕大小)

2012-04-01 16:56 507 查看
1.首先建一个MySubview.h

#import<UIKit/UIKit.h>
@interface MySubview :UIView{
}
@property (nonatomic,retain)
UIScrollView *receiver;
@end
2.实现MySubview.m

#import"MySubview.h"
@implementation MySubview
@synthesize receiver;

- (void)dealloc {
self.receiver
= nil;

[super dealloc];
}

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {

if (point.x>0&&point.x<360.0&&point.y>0.0&&point.y<150.0)
{
UIView* child =nil;

if ((child = [super
hitTest:point withEvent:event]) ==
self){

if (point.x<120) {

for (UIView *v
in self.receiver.subviews) {

if (v.tag==((self.receiver.contentOffset.x/120)+101))
{
return v;
}
}
}elseif(point.x>240){

for (UIView *v
in self.receiver.subviews) {

if (v.tag==((self.receiver.contentOffset.x/120)+103))
{
return v;
}
}
}
returnself.receiver;
}

return child;
}else{

return [super
hitTest:point withEvent:event];
}
}
@end
这里就是可以让显示在屏幕中的scrollview中的button都接受到触摸事件,而不是单纯的scrollview size范围内。
怎么使用呢?
这里是横屏的,所以坐标有些大。

myscrollview=[[UIScrollViewalloc]initWithFrame:CGRectMake(120,0,
120, 175)];
myscrollview.backgroundColor=[UIColorclearColor];

myscrollview.contentSize=CGSizeMake(720,175);

myscrollview.clipsToBounds=NO;//可以不受size限制

mysub=[[MySubview alloc]initWithFrame:CGRectMake(30,90,360,
175)];
mysub.clipsToBounds=YES;
mysub.backgroundColor=[UIColor clearColor];
[listbackview addSubview:mysub];
mysub.userInteractionEnabled=YES;
mysub.receiver=myscrollview;

这时候,就可以向scrollview上添加button了~~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: