ScrollView personalizado para desarrollo de iOS

ScrollView personalizado para desarrollo de iOS

Prefacio

El uso de scrollView personalizado para banner hará que la vista sea más hermosa.

efecto

Inserte la descripción de la imagen aquí

Código

  • 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

utilizar

  • 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

Supongo que te gusta

Origin blog.csdn.net/weixin_41732253/article/details/110097148
Recomendado
Clasificación