gpt4 book ai didi

ios - 点击 UITextField 时动画 View

转载 作者:行者123 更新时间:2023-11-29 03:05:52 25 4
gpt4 key购买 nike

当 UITextField 被点击导致键盘重叠在文本字段上时,我想向上滑动当前 View 。

在同一个 View Controller 中,处理它太容易了,但我使用的是 2 个 View Controller ,第一个有页眉和页 footer 分,第二个有 tableView 和一些自定义单元格(如评论字段)。点击评论字段时,主视图 Controller 应向上滑动(具有页眉和页 footer 分)。

我在 MainViewcontroller 中使用(它应该是向上滑动的)

- (void) animateTextField: (UITextField*) textField up: (BOOL) up
{
const int movementDistance = 160; // tweak as needed
const float movementDuration = 0.3f; // tweak as needed

int movement = (up ? -movementDistance : movementDistance);

[UIView beginAnimations: @"anim" context: nil];
[UIView setAnimationBeginsFromCurrentState: YES];
[UIView setAnimationDuration: movementDuration];
self.wizardQuestionView.frame = CGRectOffset(self.view.frame, 0, movement);
[UIView commitAnimations];
}

在 subViewController 中(MainViewController 的 tableView 的自定义单元格 View )在头文件中,我添加了 UITextFieldDelegate

和.m文件

- (void)textFieldDidBeginEditing:(UITextField *)textField
{


if(textField.tag == 1)
{
NSLog(@"Comment View");

MainViewController *mc = [[MainViewController alloc] init];

//It's going Main ViewController 's method
[mc animateTextField: textField up: YES];
}

}

如有任何帮助,我们将不胜感激。

问候

在下

最佳答案

您的 MainViewController 需要成为您的 SubViewController 的委托(delegate)。

然后,当按下文本字段时,您需要将其传达给您的代理。像这样:

if([self.delegate respondsToSelector(@selector(textDidBeginEditing:)])
[self.delegate textDidBeginEditing:textField];

为此,您需要定义一个协议(protocol):

@protocol SubViewControllerProtocol<NSObject>
-(void) textDidBeginEditing:(UITextField*) textField;
@end

并且在您的 SubViewController 中您需要创建委托(delegate):

@property (nonatomic, weak) id<SubViewControllerProtocol> delegate;

然后在您的 MainViewController 中您需要设置委托(delegate):

self.subViewController.delegate = self;

然后,在您的 MainViewController 中实现 textDidBeginEditing:

-(void) textDidBeginEditing:(UITextField*) textField {
[self animateTextField: textField up: YES]
}

关于ios - 点击 UITextField 时动画 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22781966/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com