首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用actionForKey的自定义属性动画:如何获取属性的新值?

好的,根据您提供的问答内容,我为您详细回答如下:

使用actionForKey的自定义属性动画:如何获取属性的新值?

答:在使用actionForKey的自定义属性动画中,要获取属性的新值,您可以通过在动画执行过程中使用actionForKey:value方法来实现。该方法接受两个参数:要获取的属性名称和要设置的值。在代码示例中,我们将使用myProperty作为要获取的属性名称,将使用100作为要设置的值。

代码示例如下:

代码语言:txt
复制
[self.button addTarget:self action:@selector(animateButton) forControlEvents:UIControlEventTouchUpInside];

- (void)animateButton {
    // 获取属性新值
    CGFloat myPropertyNewValue = 100.0;
    
    // 使用 actionForKey:value 方法设置属性新值
    [self.button setValue:myPropertyNewValue forKey:myProperty];
}

需要注意的是,在上述代码示例中,myProperty是您在定义动画时指定的属性名称。如果您想获取未在动画定义中指定的属性的新值,您可以通过使用valueForKey:方法来实现。例如,以下代码示例演示了如何获取未在动画定义中指定的属性的新值:

代码语言:txt
复制
[self.button addTarget:self action:@selector(animateButton) forControlEvents:UIControlEventTouchUpInside];

- (void)animateButton {
    // 获取未在动画定义中指定的属性新值
    CGFloat myPropertyNewValue = [self.button valueForKey:myProperty];
    
    // 使用 actionForKey:value 方法设置属性新值
    [self.button setValue:myPropertyNewValue forKey:myProperty];
}

需要注意的是,在上述代码示例中,myProperty是您在定义动画时指定的属性名称,而myPropertyNewValue是在代码中手动指定的属性新值。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【Android】属性动画使用理解

这种折叠/展开,隐藏/显示动画在很多地方都会有用到,如果再加上使用5.0后引进Z属性,实现各种酷炫立体动画就更吸引人了。所以,还是先掌握好这基础属性动画吧。...从上图很容易可以看出,这需要用到translationX/Y属性,即平移属性。也许你会觉得,这不是很简单吗,不就设置下平移起止动画时长,搞定。 没错,是很简单,就是这么实现。...如果是移出屏幕,那么距离很容易设定,但像这种情况下,我们要如何去设置每个控件应该平移多长距离呢? 很多博客,在对属性动画介绍时,给出示例代码都是简单设置某个具体数值,然后让我们看效果。...它作用就是指定要实现是哪个动画属性,说白点,属性动画就是通过不断修改属性来达到效果,这点在上面分析第二点给出代码上也可以很容易看出来。...那么,这个属性到底有哪些,这个字符串参数可以传递哪些进去?不知道有没有初学者跟题主一样,刚接触时都有这个困惑。

1.1K30

获取对象属性类型、属性名称、属性研究:反射和JEXL解析引擎

先简单介绍下反射概念:java反射机制是在运行状态中,对于任意一个类,都能够知道这个类所有属性和方法;对于任意一个对象,都能够调用它任意方法和属性;这种动态获取信息以及动态调用对象方法功能称为java...反射是java中一种强大工具,能够使我们很方便创建灵活代码,这些代码可以在运行时装配。在实际业务中,可能会动态根据属性获取值。...ObjectFieldUtil { private static Logger log = LoggerFactory.getLogger(ObjectFieldUtil.class); /** * 根据属性获取属性...(type),属性名(name),属性(value)map组成list * * @param o 实体 * @return */ public static List<Map<...getFieldValueByName(fields[i].getName(), o)); list.add(infoMap); } return list; } /** * 获取对象所有属性

6.4K50

如何通过反射获取属性名字和属性类型

显然我们事先不知道要查哪个表,泛型dao基本要求就是对所有的表都适用,这就需要我们动态获取表名,基本思想可以是方法中传入一个类(前提是数据库中表和实体类都是一一对应实例,通过反射获取这个实体类中属性名和属性类型...反射是java中一个很重要特性,在不知道类中信息时候,利用反射我们可以获取到类中所有的信息,例如属性名,属性类型,方法名,还可以执行类中方法,很强大,在框架中大多数也是采用反射获取类中信息。...实例: 下面简单介绍使用方法,方法很简单,都是已经封装好方法,直接调用即可 一个实体类:(贴张截图)都是私有的属性 图片 获得属性信息方法: public static void getField...(Object object) {         //获得类         Class clazz = object.getClass();         // 获取实体类所有属性信息,返回Field...(); 输出是: int class java.lang.String class java.lang.String int 独立获取属性名: String name = field.getName(

3.6K20

Android 中属性动画 --- 2(插器)

我们知道 ValueAnimator 这个类只用于根据当前动画完成度和按照一定“规律”产生一系列有规律数字,事实上,属性动画核心部分也就是这个,我们可以不断获取 ValueAnimator 产生数字用于操作...我们在定义属性动画时候,需要通过setDuring 方法来为属性动画指定完成这个动画时间,那么插器就是用不同时间因子产生不同,说白了插器就像是一个公式,根据输入来转换成对应输出。...那么我们可以不可以不使用 Android 给我们直接提供器而使用我们自己自定义器呢?答案是肯定。...当然,你也可以使用匿名类来在设置插代码中直接自定义器,从而免去新建一个类步骤。...好了,总结起来自定义器就是你可以通过自己琢磨出插器公式或者去网上找一些公式然后转换成 Android 中器作为你自己器供实现属性动画使用

1.5K10

Android使用属性动画如何自定义倒计时控件详解

引入属性动画机制已经不再是针对于View来设计了,也不限定于只能实现移动、缩放、旋转和淡入淡出这几种动画操作,同时也不再只是一种视觉上动画效果了。...它实际上是一种不断地对进行操作机制,并将赋值到指定对象指定属性上,可以是任意对象任意属性。...我们只需要告诉系统动画运行时长,需要执行哪种类型动画,以及动画初始和结束,剩下工作就可以全部交给系统去完成了。...好了,介绍了这么多,相信大家已经对属性动画有了一个最基本认识了,下面来一看看详细介绍吧 引言 本文介绍一下利用属性动画(未使用Timer,通过动画执行次数控制倒计时)自定义一个圆形倒计时控件,比较简陋...如果您感兴趣,可修改代码设置更丰富渐变色及文字变化效果,本文仅仅提供设计思路。 笔者利用属性动画多次执行实现倒计时,执行次数即为倒计时初始数值。

1.6K20

使用反射获取对象属性

要么庸俗,要么孤独——叔本华 前两天遇到一个坑,当时我通过使用getDeclaredFields()函数获取对象属性时发现一个问题: 获取属性顺序不对,结果我自己一看介绍 原来,它是无序 所以我们为了解决这个问题...首先自定义一个注解用于制定排序规则 package com.ruben.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention...,这里使用java8stream流 package com.ruben; import com.ruben.annotation.BeanFieldSort; import com.ruben.pojo.UserInfo...UserInfo userInfo = userInfoClass.newInstance(); System.out.println(userInfo); //获取...userInfoClass.getDeclaredFields(); //遍历 for (Field field : fields) { //把private属性设为可修改

3.4K10

获取对象属性改动属性集合正确姿势(拒绝大量If-else代码)

在业务场景中可能有这样需求: 同一个类两个对象(一个数数据库中获取上一次属性,一个是前端传来修改过属性),需要判断哪个属性被修改了。...解决方案: 那么我们可以将属性映射成键值对,比较属性是否相同来判断是否改动过。 由于未必是所有属性比对,因此可以创建一个注解,允许只比对带有此注解属性。...field); } } } return fields2get; } /** * 根据属性名称或者别名名称获取属性...return field2resolve.get(object); } return null; } /** * 获取两个对象属性不同所有属性名称...hash(可能有hash冲突,谨慎使用) * * @param resolveAllField 解析所有属性 * @return 属性--> hash */

1.3K20

揭秘Java反射:如何轻松获取属性及父类属性

相信很多小伙伴在学习Java过程中,都曾经遇到过需要动态地获取属性和方法场景。而Java反射正是解决这个问题利器。那么,如何使用Java反射来获取属性及父类属性呢?...二、Java反射获取属性接下来,重点讲解一下如何使用Java反射获取属性。需要获取到类Class对象,然后通过这个Class对象就可以获取到类所有属性了。...int getAge() { return age; } public void setAge(int age) { this.age = age; }}可以使用以下代码来获取...// 获取Person类所有属性(包括父类属性) for (Field field : fields) { System.out.println("属性名:" +...:属性名:name属性类型:class java.lang.String属性名:age属性类型:int可以看到,成功地获取到了Person类属性以及父类属性

12410

JS实现动态获取当前点击事件id属性

整个页面是通过ajax请求最新4部视频进行填充完成,视频列表又是通过template-web.js插件补上去,所以导致所有ID都是一样,一开始给按钮添加一个事件,结果是所有播放按钮都是播放第一个视频...于是,想了好多办法,又把ID属性给弄成动态ajax请求属性,实现了每个id不一样,接下来,因为点击播放要调用一个方法,进行解析视频播放,拼接成API+视频链接格式在打开弹窗进行展示。...具体可以看下图: 要实现点击不同按钮,并且按钮ID是动态从ajax请求获取,还要添加点击视频拼接视频链接,参考了文章,可以获取点击按钮id,然后使用button,将链接放在value中 Dom...对象id属性可以获取元素id。...-- HTML结构 --> 播放 // javascript

25.7K20

js 中使用idx模块方便获取链条式对象属性

背景 从一个js对象属性属性再次获得,或者从集合中获得元素再获得属性要写很多判断是否空表达式,才能继续读取,否则就出现异常。...从这个 user 里取出 第一个 friends 属性要可能要这么写: props.user && props.user.friends && props.user.friends[0] && props.user.friends...2.知识 ' idx '是一个用于遍历对象和数组上属性实用函数。 如果中间属性为空或未定义,则返回空。idx 目的是简化从链中提取属性过程,省得每次写各种判空条件以方便开发。...idx 这个模块是作为权宜之计存在,因为JavaScript目前还没有直接可选“链条式读取属性支持”。...扩展 安装 $ npm install idx babel-plugin-idx 配置 在 Babel 里使用时,要配置:babel-plugin-idx 插件. { plugins: [

8K10

C# 使用反射获取私有属性方法

f = getter.Invoke(foo, null); 通过 GetGetMethod 可以拿到 MethodInfo 方法,如果对属性返回是可见,如上面的 Foo 是使用 string 作为属性类...如果对于属性返回是不可见,也就是返回是拿不到,就无法通过创建委托方式提高性能。...type"/> 给定 属性获取方法 /// /// <param name="type...<em>的</em>方式和<em>使用</em>其他几个反射拿到<em>属性</em><em>的</em>方法<em>的</em>性能都是差不多<em>的</em>,所以不需要对私有<em>属性</em>反射去优化 Method Categories Mean Error StdDev 'GetProperty...,而带缓存<em>的</em>调用和 GetGetMethod <em>的</em>方法调用<em>的</em>时间几乎一样长 建议反射私有<em>属性</em><em>使用</em> GetValue <em>的</em>方法,因为只要调用非公有<em>属性</em>,调用<em>的</em>时间就是这么长,无论通过表达式或其他方法都无法减少时间

1.6K10

自定义注解2-动态修改注解属性

经过上一节,我们可以自己解析spel表达式。那么我现在想法是,在注解第一层aop中解析spel,然后将解析后设置到属性中,那么在之后aop中就不用解析了。...找出注解中值存放位置     继续上一节代码,在上一节AOP中添加注解@Order(0),再新增一个注解,添加@Order(1)。注意order这个注解有坑,最好先百度完再使用。...proxy, // 这个是代理实例,method.invoke时不能使用这个,否则会死循环 Method method, // 触发接口方法...继续往变量h里看,它有一个字段memberValues,是一个map,而在这个map中,我发现了注解存放位置。key为注解属性名,value就是属性。...修改注解     找到了注解存放位置,那么修改就简单了 @Component @Aspect @Order(0) public class InterestResolveELAspect { @

4.6K10

android attrs获取_关于Android attrs 自定义属性说明

写个自定义控件时经常要自定义一些自己属性,平时用都是那几个,今天就顺便一起总结一下这个东东吧~ 一、定义:属性定义都在attrs.xml文件里面; 二、读取:通过都是通过TypedArray...去读取,要获取TypedArray都是通过context.obtainStyledAttributes去获取,它有几个重载方法,一般形如: TypedArray typedArray = context.obtainStyledAttributes...(attrs, R.styleable.CustomView); 三、使用:要使用自定义属性,得先在布局文件声明 xmlns:app=”http://schemas.android.com/apk/res-auto...四、自定义format概览: format名称 format类型 reference 表示引用,参考某一资源ID string 表示字符串 color 表示颜色 boolean 表示尺寸 dimension...= “mode_one|mode_two|mode_three” /> 5.11 注意: 属性定义时可以指定多种类型

91990
领券