| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 |
- // 图片轮播(无限循环)
- //
- // Created by yixiang on 14/12/12.
- // Copyright (c) 2014年 yixiang. All rights reserved.
- //
- #import "PrintCell.h"
- @interface PrintCell(){
- CGFloat scaleNum;//图片放大倍数
- CATransition *animation;//缩放动画效果
- UIImageView *imgV;
- UITapGestureRecognizer *singleTapGesture;
- }
- @end
- @implementation PrintCell
- -(instancetype)initWithFrame:(CGRect)frame{
- self =[super initWithFrame:frame];
- if (self) {
-
- }
-
- return self;
- }
- - (UIImageView*)imgView {
- _btnCheck=[UIButton buttonWithType:UIButtonTypeCustom];
- _btnCheck.frame=CGRectMake(15, 100, 25, 25);
- [_btnCheck addTarget:self action:@selector(btnGoCheck) forControlEvents:UIControlEventTouchUpInside];
- [self.contentView addSubview:_btnCheck];
-
- _imgView =[[UIImageView alloc]init];;
- _imgView.frame = CGRectMake(CGRectGetMaxX(_btnCheck.frame)+10,10,self.contentView.frame.size.width-CGRectGetMaxX(_btnCheck.frame)-20, 200);
- [self.contentView addSubview: _imgView];
- _imgView.userInteractionEnabled=YES;
- //单击手势
- singleTapGesture= [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(handleSingleTap:)];
- singleTapGesture.numberOfTapsRequired = 1;
- [_imgView addGestureRecognizer:singleTapGesture];
- _label=[[UILabel alloc]init];
- _label.frame= CGRectMake(Screen_Width/2-20,CGRectGetMaxY(_imgView.frame)+3 ,70,25);
- [self.contentView addSubview:_label];
- return _imgView;
-
- }
- -(void)initScrollView{
- UIWindow *window = self.window;
- _scrollView =[[UIScrollView alloc] initWithFrame:window.frame];
- _scrollView.bounces = true; //反弹
- _scrollView.scrollEnabled = true ; //滚动
- _scrollView.userInteractionEnabled=YES;
- UITapGestureRecognizer *tapGes = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(closeView:)];
- _scrollView.backgroundColor = [UIColor blackColor];
- [_scrollView addGestureRecognizer:tapGes];
-
- _sImgView = [[UIImageView alloc] init];
- _sImgView.image=_imgView.image;
- _sImgView.frame = _scrollView.frame;
- _sImgView.contentMode = UIViewContentModeScaleAspectFit;
- _sImgView.userInteractionEnabled = YES;
- singleTapGesture= [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(closeView:)];
- singleTapGesture.numberOfTapsRequired = 1;
- [_sImgView addGestureRecognizer:singleTapGesture];
- [_scrollView addSubview:_sImgView];
- UIPinchGestureRecognizer *pinchGes =
- [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(pinchGesAction:)] ;
- [_sImgView addGestureRecognizer:pinchGes];}
- //checkbox切换函数
- -(void)btnGoCheck
- {
- if([self.delegate respondsToSelector:@selector(btnCheckPressed:)])
- {
- [self.delegate btnCheckPressed:self];
-
- }
- }
- -(void)setPageNumber:(NSString*)page{
-
- _label.text=page;
-
- }
- //设置checkbox背景图片
- - (void) setCheckBackground: (BOOL) checked
- {
- if(!checked)
- {
-
- [_btnCheck setImage:[UIImage imageNamed:@"uncheck_round"] forState:UIControlStateNormal];
-
-
- }
- else
- {
-
- [_btnCheck setImage:[UIImage imageNamed:@"check_round"] forState:UIControlStateNormal];
-
- }
- }
- #pragma mark - 处理单击手势
- -(void)handleSingleTap:(UIGestureRecognizer *)sender{
-
- [self initScrollView];
- UIWindow *window = self.window;
- [window addSubview:_scrollView];
-
- }
- -(void)closeView:(UITapGestureRecognizer*)tap{
- [_scrollView removeFromSuperview];
- }
- -(void)pinchGesAction:(UIPinchGestureRecognizer*)recognizer{
- NSLog(@"Pinch scale: %f", recognizer.scale);
- if (_scrollView.contentSize.width / _scrollView.frame.size.width > 4 && recognizer.scale >1) {
- return ;
- }
- if (recognizer.scale < 1 && _sImgView.frame.size.width / _scrollView.frame.size.width < 1 ) {
-
- _sImgView.frame = _scrollView.frame;
- return ;
- }
- _sImgView.transform = CGAffineTransformScale(_sImgView.transform, recognizer.scale, recognizer.scale);
- _scrollView.contentSize = recognizer.view.frame.size ;
- CGPoint point = CGPointMake(_scrollView.contentSize.width/2, _scrollView.contentSize.height/2);
-
- _sImgView.center = point;
- [_scrollView setContentOffset:CGPointMake(point.x - _scrollView.frame.size.width /2 , point.y - _scrollView.frame.size.height/2)];
- recognizer.scale = 1;
- }
- @end
|