当我的文本没有填充UITextView时,它会按预期滚动到顶部.如果文本上的文本多于屏幕上显示的内容,则UITextView将滚动到文本的中间位置,而不是顶部.
以下是一些可能相关的细节:
在viewDidLoad中,在UITextView的顶部和底部给出一些填充:
self.mainTextView.textContainerInset = UIEdgeInsetsMake(90, 0, 70, 0);
Run Code Online (Sandbox Code Playgroud)
UITextView使用自动布局将其从屏幕的顶部,底部和每一侧锚定20px(在IB中完成),以允许不同的屏幕尺寸和方向.
一旦加载,我仍然可以用手指滚动它.
编辑我发现删除自动布局约束,然后修复宽度似乎只能解决问题,但仅限于该屏幕宽度.
我想在设备旋转时修改布局约束.我UIViewController的由2个组成UIViews,在横向上它们是水平对齐的,在纵向上它们是垂直对齐的.
它实际上工作,在willAnimateRotationToInterfaceOrientation,我删除所需的约束,并将其替换为其他人,以获得正确的布局...
但是有一些问题,在旋转期间自动布局在willAnimateRotationToInterfaceOrientation调用之前开始打破约束,那么当设备重新定向发生时,我们在哪里更换我们的约束?
另一个问题是性能,在几次旋转之后系统不再破坏约束,但是我的性能下降很大,特别是在纵向模式下......
-ViewController
--View
---ScrollView (Top,Bottom,Leading,Trailing spaces to superview set to 0)
----ContentView (Top,Bottom,Leading,Trailing spaces to superview set to 0, Width equals with View (ViewController's child))
-----Label1
-----etc...
Run Code Online (Sandbox Code Playgroud)
如果我为我的内容视图设置了一个特定的高度约束(例如1000),ScrollView工作正常,但我有一个1000的静态ContentView,这不是我的目标,因为我的contentView获得了动态内容,所以应该是内容的高度需要.
如果我删除了ContentView的高度约束,Xcode说:
Missing Constraints:
ScrollView need constraints for: Y position or height
Run Code Online (Sandbox Code Playgroud)
ScrollView实际上是固定在顶部和底部,所以我不知道为什么Xcode想要ScrollView的高度约束...
当我希望ContentView高度达到内容所需的高度时,正确的方法是怎样的?
我从Cocoa Auto Layout机制获得以下消息:
将NSUserDefault NSConstraintBasedLayoutVisualizeMutuallyExclusiveConstraints设置为YES,以便在发生这种情况时自动调用[NSWindow visualizeConstraints:].
但我不知道如何"将NSUserDefault NSConstraintBasedLayoutVisualizeMutuallyExclusiveConstraints设置为YES".
我该如何设置?
以下代码(在viewDidLoad中调用)会导致完全红色的屏幕.我希望它是一个完全绿色的屏幕.它为什么是红色的?我怎么能把它全部变成绿色?
UIScrollView* scrollView = [UIScrollView new];
scrollView.translatesAutoresizingMaskIntoConstraints = NO;
scrollView.backgroundColor = [UIColor redColor];
[self.view addSubview:scrollView];
UIView* contentView = [UIView new];
contentView.translatesAutoresizingMaskIntoConstraints = NO;
contentView.backgroundColor = [UIColor greenColor];
[scrollView addSubview:contentView];
NSDictionary* viewDict = NSDictionaryOfVariableBindings(scrollView,contentView);
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[scrollView]|" options:0 metrics:0 views:viewDict]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[scrollView]|" options:0 metrics:0 views:viewDict]];
[scrollView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[contentView]|" options:0 metrics:0 views:viewDict]];
[scrollView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[contentView]|" options:0 metrics:0 views:viewDict]];
Run Code Online (Sandbox Code Playgroud) 我有一个iOS应用程序,适用于iOS 6中的所有设备.
我最近将我的xcode升级到5.0版,并尝试在iPhone 5上为iOS 7构建相同的应用程序.
在构建应用程序时,xCode在代码设置中升级了一些内容,但无法构建错误.
在iPad XIB上,我收到一个错误:"非法配置:iOS版本6.0之前的自动布局".
我尝试启用和禁用文件检查器中的"使用Autolayout"复选框,但它不起作用.
请帮我解决这个问题.
当我将子视图添加到根ViewController的视图,并且使用自动布局设置leadingSpace,trailingSpace,topSpace和bottomSpace为零时,左右两侧会出现一些额外的空格(所以如果我打印子视图的框架,它的原点将是16并且尺寸更小在32比应该是).所以实际上我们得到的前导和尾随空格不是零...

正如您在图片前导空间中看到的那样 - 零,但是origin.x = 16
早些时候我没有努力使用自动布局,所以我的问题是:它是新的xCode或功能的错误吗?
PS更新所有帧和约束.
我有一个包含Autolayout和Size Classes的故事板.相当复杂的布局,不幸的是我无法确定如何在新项目中重现问题.
但是有问题的视图被固定到屏幕的左边缘和右边缘,其约束具有750优先级(即|-(0@750)-[myView]-(0@750)-|,另外它具有大于或等于约束的优先级为1000(即|-(>=0)-[myView]-(>=0)-|).这样做是为了限制在iPad上的宽度,所以在容器约束中存在宽度约束width <= 600 @1000和中心水平.最重要的是,视图的宽高比约束为3:1.正如我所说,相当复杂.
Interface Builder不会显示约束的任何问题.Xcode布局预览为所有设备呈现正确.
当我运行应用程序iOS时告诉我它有相互冲突的约束.
Unable to simultaneously satisfy constraints.
Probably at least one of the constraints in the following list is one you don't want. Try this: (1) look at each constraint and try to figure out which you don't expect; (2) find the code that added the unwanted constraint or constraints and fix it. (Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't …Run Code Online (Sandbox Code Playgroud) 我有一个UITableViewAutolayout,当GADBannerView屏幕底部出现时我需要降低高度.
不幸的是,使用Autolayout无法修改框架.解决方案是删除Autolayout并手动设置框架.这是非常危险的,因为我的所有应用程序在3.5'和4.0'显示上工作正常并删除自动布局导致新的测试阶段和更多的努力.
即使启用了自动布局,有没有办法改变帧?
我的应用程序(简化)结构是这样的:
UITabBarController一个人UINavigationController拿着一个UITableViewController根视图控制器.
当点击其中一个表格视图控制器单元格时,我按下常规UIViewController(让它称之为VC)结束隐藏底部标签栏.(使用"按下时隐藏底栏"标志)
在故事板中,我UIView向VC 添加了一个看起来像底栏的常规子类,我使用自动布局将其固定到VC视图的底部.
我推VC时的问题需要一秒钟才能将此视图固定到底部,看起来像自动布局将其固定到底部,就像标签栏没有隐藏一样,一秒后它就会识别出标签栏是隐藏的将其移动到视图的真实底部.
我知道这不是最好的解释,所以我添加了一个非常简单的项目来证明这个问题.
autolayout ×10
ios ×9
objective-c ×4
storyboard ×3
cocoa ×1
ios6 ×1
ios7 ×1
scrollview ×1
uiscrollview ×1
uistoryboard ×1
uitableview ×1
uitextview ×1
xcode6 ×1