标签: autolayout

加载时UITextView不会滚动到顶部

当我的文本没有填充UITextView时,它会按预期滚动到顶部.如果文本上的文本多于屏幕上显示的内容,则UITextView将滚动到文本的中间位置,而不是顶部.

以下是一些可能相关的细节:

在viewDidLoad中,在UITextView的顶部和底部给出一些填充:

self.mainTextView.textContainerInset = UIEdgeInsetsMake(90, 0, 70, 0);
Run Code Online (Sandbox Code Playgroud)

UITextView使用自动布局将其从屏幕的顶部,底部和每一侧锚定20px(在IB中完成),以允许不同的屏幕尺寸和方向.

一旦加载,我仍然可以用手指滚动它.

编辑我发现删除自动布局约束,然后修复宽度似乎只能解决问题,但仅限于该屏幕宽度.

uitextview ios autolayout

47
推荐指数
5
解决办法
2万
查看次数

设备旋转时iOS更改自动布局约束

我想在设备旋转时修改布局约束.我UIViewController的由2个组成UIViews,在横向上它们是水平对齐的,在纵向上它们是垂直对齐的.

它实际上工作,在willAnimateRotationToInterfaceOrientation,我删除所需的约束,并将其替换为其他人,以获得正确的布局...

但是有一些问题,在旋转期间自动布局在willAnimateRotationToInterfaceOrientation调用之前开始打破约束,那么当设备重新定向发生时,我们在哪里更换我们的约束?

另一个问题是性能,在几次旋转之后系统不再破坏约束,但是我的性能下降很大,特别是在纵向模式下......

objective-c ios autolayout nslayoutconstraint

45
推荐指数
2
解决办法
4万
查看次数

iOS ScrollView需要约束y位置或高度

-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高度达到内容所需的高度时,正确的方法是怎样的?

objective-c scrollview storyboard ios autolayout

44
推荐指数
2
解决办法
3万
查看次数

如何设置NSConstraintBasedLayoutVisualizeMutuallyExclusiveConstraints?

我从Cocoa Auto Layout机制获得以下消息:

将NSUserDefault NSConstraintBasedLayoutVisualizeMutuallyExclusiveConstraints设置为YES,以便在发生这种情况时自动调用[NSWindow visualizeConstraints:].

但我不知道如何"将NSUserDefault NSConstraintBasedLayoutVisualizeMutuallyExclusiveConstraints设置为YES".

我该如何设置?

cocoa nsuserdefaults autolayout

43
推荐指数
4
解决办法
1万
查看次数

使用UIScrollview的iOS Autolayout:为什么滚动视图的内容视图不会填充滚动视图?

以下代码(在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)

uiscrollview ios autolayout ios6

43
推荐指数
1
解决办法
4万
查看次数

将应用程序升级到iOS 7 - 错误"iOS版本6.0之前的自动布局"(但希望iOS 7不旧)

我有一个iOS应用程序,适用于iOS 6中的所有设备.

我最近将我的xcode升级到5.0版,并尝试在iPhone 5上为iOS 7构建相同的应用程序.

在构建应用程序时,xCode在代码设置中升级了一些内容,但无法构建错误.

在iPad XIB上,我收到一个错误:"非法配置:iOS版本6.0之前的自动布局".

我尝试启用和禁用文件检查器中的"使用Autolayout"复选框,但它不起作用.

请帮我解决这个问题.

ios autolayout ios7

43
推荐指数
4
解决办法
3万
查看次数

xCode 6 beta 7:故事板在左右两侧增加了额外的空间

当我将子视图添加到根ViewController的视图,并且使用自动布局设置leadingSpace,trailingSpace,topSpace和bottomSpace为零时,左右两侧会出现一些额外的空格(所以如果我打印子视图的框架,它的原点将是16并且尺寸更小在32比应该是).所以实际上我们得到的前导和尾随空格不是零...

在此输入图像描述

正如您在图片前导空间中看到的那样 - 零,但是origin.x = 16

早些时候我没有努力使用自动布局,所以我的问题是:它是新的xCode或功能的错误吗?

PS更新所有帧和约束.

storyboard ios uistoryboard autolayout xcode6

43
推荐指数
1
解决办法
1万
查看次数

什么是_UITemporaryLayoutWidth,为什么它会破坏我的约束?

我有一个包含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)

ios autolayout nslayoutconstraint

43
推荐指数
6
解决办法
7388
查看次数

使用自动布局以编程方式更改框架

我有一个UITableViewAutolayout,当GADBannerView屏幕底部出现时我需要降低高度.

不幸的是,使用Autolayout无法修改框架.解决方案是删除Autolayout并手动设置框架.这是非常危险的,因为我的所有应用程序在3.5'和4.0'显示上工作正常并删除自动布局导致新的测试阶段和更多的努力.

即使启用了自动布局,有没有办法改变帧?

objective-c uitableview ios autolayout

42
推荐指数
3
解决办法
4万
查看次数

自动布局和"按下时隐藏底栏"

我的应用程序(简化)结构是这样的:

UITabBarController一个人UINavigationController拿着一个UITableViewController根视图控制器.

当点击其中一个表格视图控制器单元格时,我按下常规UIViewController(让它称之为VC)结束隐藏底部标签栏.(使用"按下时隐藏底栏"标志)

在故事板中,我UIView向VC 添加了一个看起来像底栏的常规子类,我使用自动布局将其固定到VC视图的底部.


我推VC时的问题需要一秒钟才能将此视图固定到底部,看起来像自动布局将其固定到底部,就像标签栏没有隐藏一样,一秒后它就会识别出标签栏是隐藏的将其移动到视图的真实底部.

我知道这不是最好的解释,所以我添加了一个非常简单的项目来证明这个问题.

objective-c storyboard uitabbarcontroller ios autolayout

42
推荐指数
5
解决办法
2万
查看次数