技术标签: 多处高亮 跑马灯 垂直动画 高亮显示 ios 循环滚动
由于业务需求,需要实现一个垂直滚动文本的跑马灯,没有办法只有自己去写一个动画效果,下面直接贴出代码。
MTAVerticalLoopView.h文件的代码如下:
//
// UIVerticalLoopView.h
// Jovi
//
// Created by yuzhuo on 2016/11/23.
// Copyright 2016年 dianping.com. All rights reserved.
//
#import <UIKit/UIKit.h>
#import "MTANewAdviseInfo.h"
@protocol VerticalLoopDelegate<NSObject>
- (void)didClickContentAtIndex:(NSInteger)index;
@end
typedef enum
{
VerticalLoopDirectionBottom,
VerticalLoopDirectionDown,
}VerticalLoopDirection;
@interface MTAVerticalLoopView : UIView
{
// 创建两个label循环滚动
UILabel *_firstContentLabel;
UILabel *_secondContentLabel;
UILabel *_firstclickLabel;
UILabel *_secondclickLabel;
// 记录
int currentIndex;
}
/** 动画方向默认往上
* 跑马灯动画时间
*/
@property(nonatomic) float verticalLoopAnimationDuration;
/**
* 显示的内容(支持多条数据)
*/
@property(nonatomic, retain) NSMutableArray<MTANewAdviseInfo *> *data;
/**
* loop方向(上下/右)
*/
@property(nonatomic) VerticalLoopDirection Direction;
@property (nonatomic, weak)id<VerticalLoopDelegate> loopDelegate;
/**
* 开启
*/
-(void)start;
- (void)loopContentClick;
@end
MTAVerticalLoopView.m文件的代码如下:
//
// UIVerticalLoopView.m
// Jovi
//
// Created by yuzhuo on 2016/11/23.
// Copyright 2016年 dianping.com. All rights reserved.
//
#import "MTAVerticalLoopView.h"
@implementation MTAVerticalLoopView
{
BOOL _animating;
}
#pragma mark - lifecycle
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
[self setupView];
}
return self;
}
#pragma mark - private method
-(void)setupView {
_firstclickLabel = [[UILabel alloc]initWithFrame:CGRectMake(self.frame.size.width-50, 10, 50, 25)];
_firstclickLabel.font = [UIFont systemFontOfSize:11.0];
[_firstclickLabel.layer setBorderColor:[UIColor colorWithHexString:@"#ff6633"].CGColor];//边框颜色
[_firstclickLabel.layer setMasksToBounds:YES];
[_firstclickLabel.layer setCornerRadius:12.5];
[_firstclickLabel.layer setBorderWidth:1.0];
_firstclickLabel.textColor = [UIColor colorWithHexString:@"#ff6633"];
_firstclickLabel.textAlignment = NSTextAlignmentCenter;
_secondclickLabel = [[UILabel alloc]initWithFrame:CGRectMake(self.frame.size.width-50, self.frame.size.height+10, 50, 25)];
_secondclickLabel.font = [UIFont systemFontOfSize:11.0];
[_secondclickLabel.layer setBorderColor:[UIColor colorWithHexString:@"#ff6633"].CGColor];//边框颜色
[_secondclickLabel.layer setMasksToBounds:YES];
[_secondclickLabel.l
作者:张老三的专栏 http://blog.csdn.net/billy_zh/ 在一些应用中,希望将模式对话框的值回送(PostBack)到服务端,也就是执行一个服务端操作,从而刷新页面。举个例子:比方说新建一个订单,此时希望能在模式对话框中选择产品,并将产品的ID返回,同时刷新订单中的产品项,解决的方法有多种,这里只介绍执行服务器操作的方法。要将客户端数据回送(PostBack)到服..._dialog让page postback
2022年最新面试题整理(包答案)总结最近我和几个同事遇到的面试题,希望对大家有帮助,面试题我分为两类,经常遇到,很少遇到。1、vue的生命周期 2、computed和watch区别?3、深度监听怎么做? 4、父子组件的生命周期的顺序5、setTimeout是在生命周期的什么阶段销毁的?如果不销毁会怎么样?6、父子组件通信用什么? 兄弟组件通信呢?7、路由守卫 8、如何实现双向数据绑定?9、vue的修饰符有哪些?10、vuex中mulation和actions的区别和联系? 11、MVC与MVVM的_vue自定义指令面试题
从相册去图片调用相机拍照图片的压缩布局xml version="1.0" encoding="utf-8"?>="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="matc
这全都是我遇到过的bug同样的bug信息,可能背后有千万种原因,而我,永远都不知道到底是哪一个。:)努力通过代码积累尽可能多的bug,并将它们进行分类。如果帮你debug节省了时间,就点个赞呗~~bug1:找不到或无法加载主类1. 描述:程序中含有package关键字,使用“终端”运行程序时出现“找不到或无法加载主类”,而使用Eclipse软件可以正常运行程序的可能解决办法。例如程序名为Hello...
提交地址:http://codevs.cn/problem/3249/3249 搭积木时间限制: 1 s空间限制: 128000 KB题目等级 : 黄金 Gold题解题目描述DescriptionPetya有一个A×B×C的长方体积木,积木是有1×1×1...
对视图有时为什么使用select top 100 percent 而不使用 select 呢_abap select top
一直有点没明白标题中三者的关系,在此记录下来自己查阅之后的看法,有不对的地方,请大家指正,谢谢!关于NLP中,有各种不同的表达,如:词向量、word embedding、分布式表示、word2vec、glove等等,这一锅粥的名词术语分别代表什么,他们具体的关系是什么,他们是否处于平级关系?希望写完这篇文章后,自己能清楚地理清他们之间的关系。https://blog.csdn.net...
KNN算法:欲分类的点周围找到K个与之最近的点,统计出K个点中最多出现的类别,就是这个点的类别tensorflow这里是K为1的情况,准确率大约为91%# -*- coding:utf-8 -*-import tensorflow as tfimport numpy as npfrom tensorflow.examples.tutorials.mnist import input_..._knn模型中k=1产生的结果是
概述:最近在开发中遇到了一个刚好可以用AOP实现的例子,就顺便研究了AOP的实现原理,把学习到的东西进行一个总结。文章中用到的编程语言为kotlin,需要的可以在IDEA中直接转为java。 这篇文章将会按照如下目录展开:AOP简介代码中实现举例AOP实现原理部分源码解析AOP简介相信大家或多或少的了解过AOP,都知道它是面向切面编程,在网上搜索可以找到很多的解释。这里我用一句话来总结:AOP是能够让我们在不影响原有功能的前提下,为软件横向扩展功能。 那么横向扩展怎么理解呢,我们在WEB项目_aop的原理和实践
+ (NSString *) paramValueOfUrl:(NSString *) url withParam:(NSString *) param{ NSError *error; NSString *regTags=[[NSString alloc] initWithFormat:@"(^|&|\\?)+%@=+([^&]*)(&|$)",param]; NSRegul
本文参考 基于OpenGL的荷花开放过程模拟_刘金定 (这是百度文库的链接,读者可自己搜索)我们在这里会实现简单的OpenGL画莲花过程,并实现简单的莲花绽放过程,对学习OpenGL和3D数学有着极大的帮助.一 画荷花花瓣荷花是由一片一片的花瓣组成的_opengl实现一个三维荷花
2016年计算机二级考试office模拟试题1[单选题] 微型计算机完成一个基本运算或判断的前提是中央处理器执行一条( )。A.命令B.指令C.程序D.语句【参考答案】:B【参考解析】:微型计算机完成一个基本运算或判断的前提是中央处理器执行一条指令。2[单选题] 下列数据结构中,能够按照“先进后出”原则存取数据的是( ).A.循环队列B.栈C.队列D.二叉树【参考答案】:B【参考解析】:栈是按...