我有一个非常基本的选择器,我用它作为一些按钮的背景来实现关闭状态.这是xml:
<selector xmlns:android="http://schemas.android.com/apk/res/android"
android:exitFadeDuration="@android:integer/config_mediumAnimTime">
<item android:drawable="@color/home_button_blue_down" android:state_selected="true" />
<item android:drawable="@color/home_button_blue_down" android:state_pressed="true" />
<item android:drawable="@color/home_button_blue" />
</selector>
Run Code Online (Sandbox Code Playgroud)
使用此选择器,每次按钮更改状态时都会发生淡入淡出动画.换句话说,转换将在从按下按下到按下时以及从按下按下到按下时都会生成动画.
现在,我的问题是:它是否有可能使这些状态变化只有其中一个动画?当用户按下按钮时,我希望在没有动画的情况下立即进行状态转换.当按钮被按下时,我希望当正常状态消失时,状态会淡出.这可以完成吗?
android android-animation android-button android-selector android-background
我在iOS 9,XCode 7 GM上运行.我有一个扩展UITextField(CustomOffsetTextField)的类,并提供对自定义文本定位的支持,如下所示:
override func textRectForBounds(bounds: CGRect) -> CGRect {
return CGRectOffset(bounds, textOffset.x + leftViewOffset, textOffset.y)
}
override func placeholderRectForBounds(bounds: CGRect) -> CGRect {
return CGRectOffset(bounds, textOffset.x + leftViewOffset, textOffset.y)
}
override func editingRectForBounds(bounds: CGRect) -> CGRect {
return CGRectOffset(bounds, textOffset.x + leftViewOffset, textOffset.y)
}
Run Code Online (Sandbox Code Playgroud)
leftViewOffset是文本字段leftView的宽度(如果存在).textOffset是一个CGPoint,它定义要应用于文本rects的自定义x和y偏移量.
我的问题出现在我的签到视图中.我有2个CustomOffsetTextField实例 - 一个用于用户的电子邮件,另一个用于他们的密码.
在第一次加载视图控制器时,如果我在一个字段中输入文本然后点击另一个字段,那么该文本将在跳回到textRectForBounds定义的位置之前短暂地跳回其文本字段中的位置0,0.一些基本的打印调试验证这些函数总是返回我期望它们的值.
在这个初始打嗝之后,文本字段的行为就像我期望的那样.此问题仅在视图控制器加载后在每个文本字段中出现一次.在那之后,我可以在我想要的地方之间来回切换,而不会再次发生.
有没有人在iOS 9中看到与UITextField类似的问题?如果是这样,你能找到修复方法吗?