文字无限轮播

文字无限轮播,适用于广播消息的上下无限轮播展示。

DEMO下载链接:https://github.com/IMCCP/CCPScrollView

DEMO GIF:

文字无限轮播_第1张图片
scrollView.gif

DEMO 描述:

通过使用 UILabel 与 UIScrollView 来实现轮播效果。

实现的思路:

打个比方,如果需要展示5条数据,就在ScrollView上创建5 + 1个label,使得数据的显示顺序为5-1-2-3-4-5。首次显示1的位置,然后滑动,等滑动到最后一个

label即数据为5时,无动画(一定是无动画效果)切换到第一个label的位置也就是第一个数据为5的位置,就可以实现文字的无限轮播滚动了。详细的实现过程可以查

看DEMO。

DEMO方法介绍:

/**
 *  文字数组
 */
@property (nonatomic,strong) NSArray *titleArray;
/**
 *  拼接后的文字数组
 */
@property (nonatomic,strong) NSMutableArray *titleNewArray;
/**
 *  是否可以拖拽
 */
@property (nonatomic,assign) BOOL isCanScroll;
/**
 *  block回调
 */
@property (nonatomic,copy)void(^clickLabelBlock)(NSInteger index,NSString *titleString);
/**
 *  字体颜色
 */
@property (nonatomic,strong) UIColor *titleColor;
/**
 *  背景颜色
 */
@property (nonatomic,strong) UIColor *BGColor;
/**
 *  字体大小
 */
@property (nonatomic,assign) CGFloat titleFont;
/**
 *  关闭定时器
 */
- (void)removeTimer;
/**
 *  添加定时器
 */
- (void)addTimer;
/**
 *  label的点击事件
 */

- (void) clickTitleLabel:(clickLabelBlock) clickLabelBlock;

DEMO 使用示例

- (void)viewDidLoad {
    [super viewDidLoad];
    [self.view setNeedsLayout];
    [self.view layoutIfNeeded];
    CCPScrollView *ccpView = [[CCPScrollView alloc] initWithFrame:CGRectMake(65, 0, self.testView.frame.size.width - 80, self.testView.frame.size.height)];
    
    ccpView.titleArray = [NSArray arrayWithObjects:@"iPhone6s上线32G内存手机你怎么看?",@"亲爱的朋友们2016年还有100天就要过去了,2017年您准备好了吗?",@"今年双11您预算了几个月的工资?",@"高德与百度互掐,你更看好哪方?", nil];
    
    ccpView.titleFont = 18;
    
    ccpView.titleColor = [UIColor blackColor];
    
    ccpView.BGColor = CCPRGBColor(221, 221, 221);
    
    [ccpView clickTitleLabel:^(NSInteger index,NSString *titleString) {
        
        NSLog(@"%ld-----%@",index,titleString);
        
        //自定义的弹出view,可以对弹出视图进行高度的自定义
        UIView *alertView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width - 15 * 2, 250)];
        
        alertView.backgroundColor = [UIColor whiteColor];
        
        alertView.layer.cornerRadius = 8;
        
        alertView.layer.masksToBounds = YES;
        
        UILabel *alertLabel = [[UILabel alloc] init];
        
        alertLabel.textAlignment = NSTextAlignmentCenter;
        
        alertLabel.text = titleString;
        
        alertLabel.font = [UIFont systemFontOfSize:20];
        
        alertLabel.numberOfLines = 0;
        
        alertLabel.width =  [UIScreen mainScreen].bounds.size.width - 15 * 2;
        [alertLabel sizeToFit];
        alertLabel.centerX = alertView.centerX;
        alertLabel.centerY = alertView.centerY;
        [alertView addSubview:alertLabel];
        //弹出自定义弹窗
        CCPActionSheetView *actionSheetView = [[CCPActionSheetView alloc] initWithAlertView:alertView];
         actionSheetView.viewAnimateStyle = ViewAnimateScale;

    }];
    
    [self.testView addSubview:ccpView];
}

你可能感兴趣的:(文字无限轮播)