Latest2.3.8
Homepagehttps://github.com/stackhou/YJBannerViewOC
LicenseMIT
Platformsios 7.0, requires ARC
Authors

Logo

Travis
Language
CocoaPods
CocoaPods
Carthage Compatible

  • 使用简单、功能丰富的 Objective-C版 轮播控件, 基于 UICollectionView 实现, 多种场景均支持使用.

效果样例

普通自定义View
YJBannerViewYJBannerView

Features

  • [x] 支持自带PageControl样式配置, 也支持自定义
  • [x] 支持上、下、左、右四个方向自动、手动动滚动
  • [x] 支持自动滚动时间设置
  • [x] 支持首尾循环滚动的开关
  • [x] 支持滚动相关手势的开关
  • [x] 支持ContentMode的设置
  • [x] 支持Banner标题的设置自定义
  • [x] 支持自定义UICollectionViewCell
  • [x] 支持在Storyboardxib中创建并配置其属性
  • [x] 支持非首尾循环的Footer样式和进入详情回调
  • [x] 不依赖其他三方SDWebImage或者AFNetworking设置图片
  • [x] 支持CocoaPods
  • [x] 支持Carthage
  • [x] 支持获取当前位置的自身偏移量

Installation

Cocoapods

YJBannerView is available through CocoaPods. To install it, simply add the following line to your Podfile:

    pod 'YJBannerView'

Carthage

    github "stackhou/YJBannerViewOC"

Usage

1.创建BannerView:

-(YJBannerView *)normalBannerView{
    if (!_normalBannerView) {
        _normalBannerView = [YJBannerView bannerViewWithFrame:CGRectMake(0, 20, kSCREEN_WIDTH, 180) dataSource:self delegate:self placeholderImageName:@"placeholder" selectorString:@"sd_setImageWithURL:placeholderImage:"];
        _normalBannerView.pageControlAliment = PageControlAlimentRight;
        _normalBannerView.autoDuration = 2.5f;
    }
    return _normalBannerView;
}

2.实现数据源方法和代理:

// 将网络图片或者本地图片 或者混合数组
- (NSArray *)bannerViewImages:(YJBannerView *)bannerView{
    return self.imageDataSources;
}

// 将标题对应数组传递给bannerView 如果不需要, 可以不实现该方法
- (NSArray *)bannerViewTitles:(YJBannerView *)bannerView{
    return self.titlesDataSources;
}

// 代理方法 点击了哪个bannerView 的 第几个元素
-(void)bannerView:(YJBannerView *)bannerView didSelectItemAtIndex:(NSInteger)index{
    NSString *title = [self.titlesDataSources objectAtIndex:index];
    NSLog(@"当前%@-->%@", bannerView, title);
}

扩展自定义方法

// 自定义Cell方法
- (Class)bannerViewCustomCellClass:(YJBannerView *)bannerView{
    return [HeadLinesCell class];
}

// 自定义Cell的数据刷新方法
- (void)bannerView:(YJBannerView *)bannerView customCell:(UICollectionViewCell *)customCell index:(NSInteger)index{

    HeadLinesCell *cell = (HeadLinesCell *)customCell;
    [cell cellWithHeadHotLineCellData:@"打折活动开始了~~快来抢购啊"];
}

版本记录

日期版本号更新内容
2015-5-10~2016-10-171.0~2.02.0之前的更新内容没有实际意义,省略…
2016-10-17~2017-01-012.0~2.1功能完善Bug修复等
2017-01-01~2017-07-302.1~2.2主要功能优化,新增FooterView等
2017-7-30~2017-09-302.2.0~2.3.0调优、降低内存消耗等
2017-9-302.3.0调优 创建该控件由原来的120毫秒 优化到只需要60毫秒左右,和创建一个UILabel相当。
2017-11-12.3.1增加停止定时器和重新开启定时器API
2017-11-162.3.2修复当数据为空时刷新后再次有数据刷新不滚动问题
2017-12-052.3.4规范图片加载流程
2017-12-062.3.5区分没有数据的占位图片和图片未加载的占位图片
2017-12-142.3.6数据安全保护和数据更新速度优化
2017-12-152.3.7增加当前滚动位置相对偏移量API
2018-01-182.3.8优化自定义View的实现方式,支持不同位置的Banner自由选择显示类型

性能表现

  • 简单设置时:

YJBannerView

  • 复杂设置时:

YJBannerView


License

This code is distributed under the terms and conditions of the MIT license.

Change-log

A brief summary of each YJBannerView release can be found in the CHANGELOG.

Latest podspec

{
    "name": "YJBannerView",
    "version": "2.3.8",
    "summary": "YJBannerView u8f6eu64adu63a7u4ef6, Author's email:[email protected]",
    "description": "YJBannerView u8f6eu64adu63a7u4ef6, Author's email:[email protected] Form Beijing",
    "homepage": "https://github.com/stackhou/YJBannerViewOC",
    "license": {
        "type": "MIT",
        "file": "LICENSE"
    },
    "authors": {
        "houmanager": "[email protected]"
    },
    "platforms": {
        "ios": "7.0"
    },
    "source": {
        "git": "https://github.com/stackhou/YJBannerViewOC.git",
        "tag": "2.3.8"
    },
    "source_files": "YJBannerViewDemo/YJBannerView/**/*.{h,m}",
    "resources": "YJBannerViewDemo/YJBannerView/Resource/YJBannerView.bundle",
    "requires_arc": true
}

Pin It on Pinterest

Share This