标签: uiscrollview

当键盘出现时 - 如何开始编辑时,如何让UITextField向上移动?

使用iOS SDK:

我有一个UIView带有UITextField键盘的s.我需要它能够:

  1. UIScrollView一旦键盘出现,允许滚动内容以查看其他文本字段

  2. 自动"跳跃"(通过向上滚动)或缩短

我知道我需要一个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)

但是,这不会自动"向上移动"或将可见区域中的下部文本字段居中,这是我真正想要的.

objective-c uiscrollview uitextfield uikeyboard ios

1674
推荐指数
39
解决办法
61万
查看次数

UIScrollView可滚动内容大小模糊

各位开发者,我在Interface Builder(Xcode 5/iOS 7)中遇到AutoLayout问题.这是非常基本和重要的,所以我想每个人都应该知道这是如何正常运作的.如果这是Xcode中的一个错误,那就是一个关键错误!

所以,每当我有一个像这样的视图层次结构时,我遇到了麻烦:

>UIViewController
>> UIView
>>>UIScrollView
>>>>UILabel (or any other comparable UIKit Element)
Run Code Online (Sandbox Code Playgroud)

UIScrollView具有可靠的约束,例如,每侧50 px(没问题).然后我向UILabel添加一个Top Space约束(没问题)(我甚至可以固定标签的高度/宽度,不做任何改变,但由于Label的内在大小,应该是不必要的)

当我向UILabel添加尾随约束时,麻烦就开始了:

例如,尾随空间:Superview等于:25

现在出现了两个警告 - 我不明白为什么:

A)可滚动内容大小歧义(滚动视图具有不明确的可滚动内容高度/宽度)

B)错位视图(预期标签:x = -67实际值:x = 207

我在一个新的项目中做了这个最小的例子,你可以下载并附上截图.如您所见,Interface Builder期望Label位于UIScrollView边界之外(橙色虚线矩形).使用Resolve Issues Tool更新Label的框架会将其移动到那里.

请注意:如果用UIView替换UIScrollView,行为就像预期的那样(Label的框架是正确的,并且根据约束条件).所以似乎UIScrollView存在问题,或者我错过了重要的事情.

当我按照IB的建议运行应用程序而不更新Label的框架时,它定位得很好,正好在它应该是的位置,并且UIScrollView是可滚动的.如果我更新框架,标签不在视线范围内,UIScrollView不会滚动.

帮助我Obi-Wan Kenobi!为什么模棱两可的布局?为什么错位的观点?

你可以在这里下载示例项目,如果你能弄清楚发生了什么就试试:https: //github.com/Wirsing84/AutoLayoutProblem

Interface Builder中的问题的插图

interface-builder uiscrollview ios autolayout swift

472
推荐指数
12
解决办法
25万
查看次数

UIScrollView以编程方式滚动到底部

如何UIScrollView在代码中滚动到底部?或者以更通用的方式,到子视图的任何一点?

objective-c uiscrollview ios swift

287
推荐指数
15
解决办法
19万
查看次数

阻止UIWebView垂直"弹跳"?

有谁知道如何阻止UIWebView垂直弹跳?我的意思是当用户触摸他们的iPhone屏幕时,向下拖动他们的手指,webview在我加载的网页上方显示一个空白点?

我已经看过以下可能的解决方案,但它们都不适用于我:

http://www.iphonedevsdk.com/forum/iphone-sdk-development/996-turn-off-scrolling-bounces-uiwebview.html

http://forums.macrumors.com/showthread.php?t=619534

如何阻止UIScrollView水平弹跳?

iphone objective-c uiwebview uiscrollview ios

225
推荐指数
6
解决办法
13万
查看次数

如何模拟地图应用中的底部工作表?

任何人都可以告诉我如何在iOS 10中的新地图应用程序中模仿底页?

在Android中,您可以使用BottomSheet模仿此行为的模式,但我找不到类似iOS的内容.

这是一个带有内容插入的简单滚动视图,以便搜索栏位于底部吗?

我对iOS编程很新,所以如果有人可以帮助我创建这个布局,那将非常感激.

这就是我所说的"底页":

地图中折叠的底部工作表的屏幕截图

地图中展开的底部工作表的屏幕截图

uiscrollview uiview mapkit ios swift

179
推荐指数
6
解决办法
7万
查看次数

在UIScrollView中查找滚动方向?

UIScrollView只允许水平滚动,我想知道用户滚动的方向(左,右).我做的是继承UIScrollView和覆盖touchesMoved方法:

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
    [super touchesMoved:touches withEvent:event];

    UITouch *touch = [touches anyObject];
    float now = [touch locationInView:self].x;
    float before = [touch previousLocationInView:self].x;
    NSLog(@"%f %f", before, now);
    if (now > before){
        right = NO;
        NSLog(@"LEFT");
    }
    else{
        right = YES;
        NSLog(@"RIGHT");

    }

}
Run Code Online (Sandbox Code Playgroud)

但是当我移动时,这种方法有时根本不会被调用.你怎么看?

iphone cocoa-touch uiscrollview ios

176
推荐指数
12
解决办法
14万
查看次数

UIStackView可以滚动吗?

假设我在UIStackView中添加了更多可以显示的视图,如何制作UIStackView滚动?

uiscrollview ios uistackview

174
推荐指数
9
解决办法
8万
查看次数

如何使用Autolayout在我的UIScrollview上设置约束?

我花了两天时间尝试混合和纯Autolayout方法的各种解决方案,以实现自动布局之前的简单滚动视图设置,现在它已经正式 - 我必须太愚蠢.我主要是在Storyboard中设置它(好吧,它就是这样).

所以这是我的求助.

Viewtree:

UIView
-UIView
-UIView
..-UIScrollview
...-UIButton
...-UIButton
...-UIButton
Run Code Online (Sandbox Code Playgroud)

按钮应该水平滚动(从左到右,反之亦然).有人可以让我知道如何设置的约束来实现这个使用纯自动布局???

-

我尝试过混合方法,如下所示:

UIView
- UIView
- UIView
..-UIScrollview
...-UIView (contentview)
....-UIButton
....-UIButton
....-UIButton
Run Code Online (Sandbox Code Playgroud)

...并根据Apple的TechNote contentviewtranslatesAutoresizingMaskIntoConstraints设置和设置设置固定的宽度和高度限制.使用约束设置按钮和滚动视图.这让滚动视图滚动(yay)但是唉,它滚动得太远了!据我所知,滚动宽度在某种程度上比我设置的内容视图加倍了??? !!! ???

我尝试了纯自动布局方法,包括contentview有无.所有观点都是translatesAutoresizingMaskIntoConstraints=NO,除了self.view.按钮具有固定的宽度/高度约束,并固定到滚动视图的所有四个边缘.什么都不滚动.

所以我完全不知道为什么我不能让它正常工作.非常感谢任何帮助,如果您需要任何其他信息,请询问!

更新截图与解决方案 - buttonZ约束:

在此输入图像描述

编辑@ Jamie Forrest 所以解决方案结果是最后一个按钮的错误尾随约束.而不是6441,我设置的值是负数,-6441.棘手的是,在storyboard中设置值时,Pin工具栏中有两个选项:

在此输入图像描述

当前画布值为负(导致无滚动),下面的选项为正(激活滚动).这意味着我不是傻瓜,但我猜至少半盲.虽然,为了我的辩护,XCode没有为"错误"设置显示错误,这有点令人不安吗?

再次编辑 现在这很有趣......将尾随值从-6441(无滚动)更改为6441启用滚动.但我的老朋友"太多内容化"又回来了,导致内容大小是应有的两倍!获取正确内容滚动的解决方案是将尾随约束设置为ZERO!当在Storyboard中工作但是查看@Infinity James的代码时,这并不明显,它应该是什么.

storyboard uiscrollview ios autolayout

173
推荐指数
6
解决办法
9万
查看次数

165
推荐指数
8
解决办法
10万
查看次数

什么是UIScrollView contentInset属性?

有人可以向我解释一个UIScrollView实例中的contentInset属性用于什么?也许提供一个例子?

uiscrollview

155
推荐指数
3
解决办法
10万
查看次数