使用iOS SDK:
我有一个UIView带有UITextField键盘的s.我需要它能够:
UIScrollView一旦键盘出现,允许滚动内容以查看其他文本字段
自动"跳跃"(通过向上滚动)或缩短
我知道我需要一个UIScrollView.我已经尝试将我的类更改UIView为a UIScrollView但我仍然无法向上或向下滚动文本框.
我需要a UIView和a UIScrollView吗?一个进去另一个吗?
需要实现什么才能自动滚动到活动文本字段?
理想情况下,尽可能多的组件设置将在Interface Builder中完成.我只想编写需要它的代码.
注意:我正在使用的UIView(或UIScrollView)是由tabbar(UITabBar)启动的,它需要正常运行.
编辑:我正在添加滚动条,仅用于键盘出现时.即使它不需要,我觉得它提供了更好的界面,因为用户可以滚动和更改文本框.
我已经让它工作,我改变UIScrollView了键盘上下的框架大小.我只是使用:
-(void)textFieldDidBeginEditing:(UITextField *)textField {
//Keyboard becomes visible
scrollView.frame = CGRectMake(scrollView.frame.origin.x,
scrollView.frame.origin.y,
scrollView.frame.size.width,
scrollView.frame.size.height - 215 + 50); //resize
}
-(void)textFieldDidEndEditing:(UITextField *)textField {
//keyboard will hide
scrollView.frame = CGRectMake(scrollView.frame.origin.x,
scrollView.frame.origin.y,
scrollView.frame.size.width,
scrollView.frame.size.height + 215 - 50); //resize
}
Run Code Online (Sandbox Code Playgroud)
但是,这不会自动"向上移动"或将可见区域中的下部文本字段居中,这是我真正想要的.
有人可以向我解释一个UIScrollView实例中的contentInset属性用于什么?也许提供一个例子?
我的代码遇到了问题.我正在尝试移动UIScrollView当我正在编辑时UITextField应该被键盘弹出隐藏.
我现在正在移动主框架,因为我不知道如何在代码中"向上滚动".所以,我做了一些代码,它工作正常但是当我编辑一个UItextfield并且我切换到另一个UITextField而没有按下"返回"按钮时,主视图变得非常了不起.
我NSLog()用变量大小,距离和textFieldRect.origin.y 做了一个,如下所示.当我把两个UITextField放在同一个地方(y原点)并且我做这个特别的'开关'(没有按回车)时,我得到相同的数字,而我的代码在第一次UITextField编辑时工作正常但不适用于第二次编辑.
看一下这个:
- (void)textFieldDidBeginEditing:(UITextField *)textField {
{
int size;
CGRect textFieldRect = [self.view.window convertRect:textField.bounds fromView:textField];
size = textFieldRect.origin.y + textFieldRect.size.height;
if (change == FALSE)
{
size = size - distance;
}
if (size < PORTRAIT_KEYBOARD_HEIGHT)
{
distance = 0;
}
else if (size > PORTRAIT_KEYBOARD_HEIGHT)
{
distance = size - PORTRAIT_KEYBOARD_HEIGHT + 5; // +5 px for more visibility
}
NSLog(@"origin %f", textFieldRect.origin.y);
NSLog(@"size %d", …Run Code Online (Sandbox Code Playgroud) 我正在使用UITextField来接收用户输入.但是,由于我的文本字段朝向笔尖的中间/底部,因此当键盘弹出时会隐藏它.有没有什么方法可以将它与键盘一起滑动,以便在选择时它位于键盘的顶部?此外,由于我也在使用数字键盘,是否有一种简单的方法可以在某处包含完成按钮?
谢谢您的帮助.
我从这个问题得到了下面的代码.我正在尝试在开始编辑时滑动文本字段(因为它们会被iPhone键盘覆盖).但是,日志语句显示未调用textFieldDidBeginEditing方法.
我在UIViewController的两个不同的子类中有下面的代码.例如,在其中一个中,我有一个从故事板连接到UIViewController的文本字段
@property (strong, nonatomic) IBOutlet UITextField *mnemonicField;
Run Code Online (Sandbox Code Playgroud)
我将文本字段移动到视图的顶部(即没有被键盘覆盖),以便我可以编辑它以尝试触发日志语句,但它不起作用.否则文本字段按预期工作,即我输入的数据将保存到coreData等.
你能解释一下我可能做错了什么吗?
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
NSLog(@"The did begin edit method was called");
[self animateTextField: textField up: YES];
}
- (void)textFieldDidEndEditing:(UITextField *)textField
{
[self animateTextField: textField up: NO];
}
- (void) animateTextField: (UITextField*) textField up: (BOOL) up
{
const int movementDistance = 180; // tweak as needed
const float movementDuration = 0.3f; // tweak as needed
int movement = (up ? -movementDistance : movementDistance);
[UIView beginAnimations: @"anim" context: nil];
[UIView …Run Code Online (Sandbox Code Playgroud) 我有一个带有分组静态UITableView的UITableViewController.我在故事板上为我的静态表视图定义单元格.其中一个单元格中有一个文本字段.当调用此文本字段时,键盘会弹出,但是,表视图不会像通常在表视图控制器上那样自动调整大小.所以现在键盘部分覆盖文本区域,我无法向上滚动.
我的理解是,当您使用UITableViewController和tableview时,可调区域应该在调用键盘时自动缩小.它确实在我的应用程序的其他部分中工作,而不是使用此静态表视图.它不适用于静态表吗?还有其他我想念的东西吗?有没有简单的方法来解决这个问题?
谢谢
我的视图底部有一个UIToolbar,我在这个工具栏中有一个UITextField.当我开始编辑这个字段时,它隐藏在键盘后面.要查看我输入的内容,我想在键盘出现时将工具栏向上移动(然后在我完成编辑后将其向下移动).
如何上/下移动此UIToolbar?
ios ×4
objective-c ×4
iphone ×3
keyboard ×2
uiscrollview ×2
uitextfield ×2
cocoa-touch ×1
scrollview ×1
uikeyboard ×1