Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/105.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 减小UITextView的大小以显示UIButton_Ios_Swift_Uibutton_Uitextview_Uianimation - Fatal编程技术网

Ios 减小UITextView的大小以显示UIButton

Ios 减小UITextView的大小以显示UIButton,ios,swift,uibutton,uitextview,uianimation,Ios,Swift,Uibutton,Uitextview,Uianimation,我的应用程序中有一个文本视图,旁边有一个“完成”按钮,用于退出键盘。基本上,与其将“完成”按钮永久地放在文本视图旁边,我希望文本视图在点击时宽度减小,然后一个“完成”按钮将出现在空间中。然后,当用户点击屏幕或“完成”按钮时,按钮消失,文本视图再次增加到正常大小 我已经实现了在用户开始键入时显示按钮的代码,但我想更改此代码,以便在用户点击文本视图时显示按钮,我还需要帮助添加动画以缩小文本视图 谢谢。实现textview的委托方法textview应该开始编辑:。然后在该方法中,执行如下操作: but

我的应用程序中有一个文本视图,旁边有一个“完成”按钮,用于退出键盘。基本上,与其将“完成”按钮永久地放在文本视图旁边,我希望文本视图在点击时宽度减小,然后一个“完成”按钮将出现在空间中。然后,当用户点击屏幕或“完成”按钮时,按钮消失,文本视图再次增加到正常大小

我已经实现了在用户开始键入时显示按钮的代码,但我想更改此代码,以便在用户点击文本视图时显示按钮,我还需要帮助添加动画以缩小文本视图


谢谢。

实现textview的委托方法
textview应该开始编辑:
。然后在该方法中,执行如下操作:

button.alpha = 0.0f;
button.hidden = NO;
[UIView animationWithDuration:0.3f animations:^{
    NSInteger padding = 5;
    CGRect textViewFrame = textView.frame;
    textViewFrame.width -= CGRectGetWidth(button.frame) - padding;

    // Edit
    textView.frame = textViewFrame;

    // and just to fade the button in as the text field shrinks
    button.alpha = 1.0;
}];

当您单击按钮将文本字段返回到正确的宽度时,我会做相反的操作

感谢您的响应。我在Swift中这样做,我想知道Swift中的
textViewFrame.width-=CGRectGetWidth(self.notesDone.frame)
的等价物是什么?目前我遇到了一个错误-无法使用类型为“(CGFloat,CGFloat)”的参数列表调用“-=”,我不熟悉Swift,但您是否尝试过等效的
textViewFrame.width=textViewFrame.width-self.notesDone.frame.size.width
,或者这只会导致相同的错误?啊,我明白了。这给了我一个错误:“无法在textViewFrame'Oh woops中指定宽度”。我的意思是
textViewFrame.size.width
。我还编辑了我的答案,注意到我忘了将textview的框架设置回新的框架。不知道这是否重要,只是不想添加混淆明白了!必须添加
self.notesField.frame.size.width=textViewFrame.size.width
。谢谢你的帮助。