前言
banner使用自定义scrollView会让视图更美观。
效果
代码
- LDSScrollView.h
#import <UIKit/UIKit.h>
@interface LDSScrollView : UIScrollView
@end
- LDSScrollView.m
#import "LDSScrollView.h"
@implementation LDSScrollView
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event {
CGRect rect = self.bounds;
rect.origin.x -= 20.f;
rect.size.width = [UIScreen mainScreen].bounds.size.width;
if (CGRectContainsPoint(rect, point)) {
return YES;
}
return [super pointInside:point withEvent:event];
}
@end
使用
- ViewController.m
#import "ViewController.h"
#import "LDSScrollView.h"
@interface ViewController ()
@property (nonatomic, strong) NSArray *imageArr;
@property (nonatomic, strong) LDSScrollView *scrollView;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.view.backgroundColor = [UIColor whiteColor];
[self.view addSubview:self.scrollView];
[self scrollViewDemo];
}
- (void)scrollViewDemo {
NSInteger count = self.imageArr.count;
self.scrollView.contentSize = CGSizeMake((self.view.frame.size.width - 60.f) * count, (self.view.frame.size.width - 80.f) / 2);
//添加图片
for (int i = 0; i < count; i ++) {
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(20.f + i * (self.view.frame.size.width - 60.f), 0.f, self.view.frame.size.width - 80.f, (self.view.frame.size.width - 80.f) / 2)];
imageView.tag = i;
imageView.backgroundColor = [UIColor grayColor];
imageView.userInteractionEnabled = YES;
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(clickImageViewAction:)];
[imageView addGestureRecognizer:tap];
[self.scrollView addSubview:imageView];
}
}
- (LDSScrollView *)scrollView {
if(_scrollView == nil) {
_scrollView = [[LDSScrollView alloc] initWithFrame:CGRectMake(20.f, 100.f, self.view.frame.size.width - 60.f, (self.view.frame.size.width - 80.f) / 2)];
_scrollView.pagingEnabled = YES;
_scrollView.clipsToBounds = NO;
}
return _scrollView;
}
- (NSArray *)imageArr {
if(_imageArr == nil) {
_imageArr = @[@"0", @"1", @"2", @"3", @"4"];
}
return _imageArr;
}
- (void)clickImageViewAction:(UITapGestureRecognizer *)sender {
NSInteger index = sender.view.tag;
NSLog(@"imageView tag %ld", (long)index);
}
@end