首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UITextField剥离

UITextField剥离
EN

Stack Overflow用户
提问于 2015-01-05 01:02:28
回答 2查看 102关注 0票数 0

我有一个UITextField,当我按下一个按钮时,它会动画到视图控制器上(从右边移到视图上)。但是,当我按下UITextField或任何其他视图时,UITextField就会消失。我怎样才能阻止UITextField消失。我使用以下代码:

代码语言:javascript
复制
@IBAction func joinCircleButton(sender: AnyObject) {
    let button = sender as UIButton
    joinTextField.frame.origin.x=500
    joinTextField.frame.origin.y=100
    if (button.frame.origin.x - 75>0){
    UIView.animateWithDuration(0.5, animations:{
        button.frame = CGRectMake(button.frame.origin.x - 125, button.frame.origin.y,button.frame.size.width, button.frame.size.height)
        button.transform = CGAffineTransformMakeScale(0.5, 0.5);
        self.joinTextField.frame=CGRectMake(self.joinTextField.frame.origin.x - 325, self.joinTextField.frame.origin.y,self.joinTextField.frame.size.width, self.joinTextField.frame.size.height)

    })
    }
}
override func viewDidLayoutSubviews(){
    joinTextField.center = CGPointMake(joinTextField.frame.origin.x-500, joinTextField.frame.origin.y)


}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-05 01:36:52

如果您使用的是iPhone模拟器,请尝试使用50而不是500,因为屏幕宽度很小,因此您的文本字段将显示在屏幕外

代码语言:javascript
复制
joinTextField.frame.origin.x=**50**
joinTextField.frame.origin.y=100

override func viewDidLayoutSubviews(){
    joinTextField.center = CGPointMake(joinTextField.frame.origin.x-**50**, joinTextField.frame.origin.y)
}
票数 0
EN

Stack Overflow用户

发布于 2015-01-05 05:30:12

自动布局不允许您更改视图的框架。相反,您应该更改约束并调用setNeedsUpdateConstraints()。如果您确实需要执行临时更改视图位置的动画,则可以使用CGAffineTransform,特别是CGAffineTransformMakeTranslate(),将txty表示为“希望移动视图的点数”。由于您还在代码中使用transform到动画缩放,所以可以使用CGAffineTransformConcat“合并”缩放,并将命令转换为可以设置为视图的命令。

您的动画方法应该如下所示:

代码语言:javascript
复制
UIView.animateWithDuration(0.5) {
    let trans = CGAffineTransformMakeTranslation(-125, 0)
    let scale = CGAffineTransformMakeScale(0.5, 0.5)
    button.transform = CGAffineTransformConcat(trans, scale)
    self.joinTextField.transform = CGAffineTransformMakeTranslation(-325, 0)
}

在Apple中了解更多关于CGAffineTransform的信息

关于代码的其余部分--您仍然可以让框架在您的if中检查它,但是您必须将更改框架的部分更改为使用transform转换。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27772126

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档