UIScrollViewpagingEnabled自定义翻页宽度-创新互联

PagingEnabled只能翻过整页,下面几个简单的设置即可实现

创新互联自成立以来,一直致力于为企业提供从网站策划、网站设计、成都网站制作、网站设计、外贸网站建设、电子商务、网站推广、网站优化到为企业提供个性化软件开发等基于互联网的全面整合营销服务。公司拥有丰富的网站建设和互联网应用系统开发管理经验、成熟的应用系统解决方案、优秀的网站开发工程师团队及专业的网站设计师团队。

技术点:

1. 创建一个继承UIView的视图,并设置clipsToBounds= YES

2. 添加一个UIscrollView控件,将其宽度设置为自定义翻页的宽度

3. 设置UIScrollview 的clipsToBounds= NO

4. 确保本View的宽度大于UIScrollView的宽度用于显示预览内容

5. 重写本View的hittest方法,为了确保用户滑动UIscrollview以外的空间时也可以触发UIscrollview滑动

ok! 下面是代码,为了方便,使用图片作为显示的每一页

#define kLJItemWidth 240

@implementation MyScrollview  {

  UIScrollView *scrollview;

}

- (id)initWithFrame:(CGRect)frame {

  self = [super initWithFrame:frame];

  if (self) {

     scrollview = ({

       UIScrollView *scroll = [[UIScrollView alloc] initWithFrame:CGRectMake(40, 0, kLJItemWidth, frame.size.height)];

       scroll.pagingEnabled = YES;

       scroll.clipsToBounds = NO;

       scroll;

     })                                           ;

    [self addSubview:scrollview];

              self.clipsToBounds = YES;

  }

  return self;

}

-(void)loadImages:(NSArray *)array{

  int index = 0;

  [scrollview.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)];

  for(NSString * name in array){

    UIImageView *iv = [[UIImageView alloc] initWithImage:[UIImage p_w_picpathNamed:name]];

    iv.contentMode = UIViewContentModeScaleToFill;

    CGRect fra = iv.frame;

    fra.size.width = kLJItemWidth;

    fra.origin.x = index * kLJItemWidth;

    iv.frame = fra;

    [scrollview addSubview:iv];

    index++;

  }

  scrollview.contentSize = CGSizeMake(scrollview.frame.size.width*index, scrollview.frame.size.height);

}

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

{

  UIView *view = [super hitTest:point withEvent:event];

  if ([view isEqual:self])

  {

    for (UIView *subview in scrollview.subviews)

    {

      CGPoint offset = CGPointMake(point.x - scrollview.frame.origin.x + scrollview.contentOffset.x - subview.frame.origin.x,

          point.y - scrollview.frame.origin.y + scrollview.contentOffset.y - subview.frame.origin.y);

      if ((view = [subview hitTest:offset withEvent:event]))

      {

        return view;

      }

    }

    return scrollview;

  }

  return view;

}

@end

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


本文标题:UIScrollViewpagingEnabled自定义翻页宽度-创新互联
文章URL:http://pwwzsj.com/article/djiogd.html