文字无限轮播

作者: iccpeng | 来源:发表于2016-09-28 17:20 被阅读1296次

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

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

    DEMO GIF:

    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];
    }
    

    相关文章

      网友评论

        本文标题:文字无限轮播

        本文链接:https://www.haomeiwen.com/subject/vrxkyttx.html