Tag: autolayout

如何调整JavaFX ScrollPane内容以适应当前大小

我有一个以ScrollPane作为中心元素的BorderPane 。 它自动resize以填满屏幕。 ScrollPane内部是一个HBox ,它没有内容,但是是一个拖放目标。 所以我想要它填充它的父ScrollPane 。 什么是这样做的首选方法? 我到目前为止所尝试的是重写ScrollPane.resize(…)方法来调整HBox大小,但它看起来相当复杂和非正统。 编辑:若要添加一些有用的代码,这是我可以解决这个问题,但我相信有一些更好的方法来做到这一点: @Override public void resize(double width, double height) { super.resize(width, height); double scrollBarHeight = 2; double scrollBarWidth = 2; for (final Node node : lookupAll(".scroll-bar")) { if (node instanceof ScrollBar) { ScrollBar sb = (ScrollBar) node; if (sb.getOrientation() == Orientation.HORIZONTAL) { System.out.println("horizontal scrollbar visible = " […]

自动布局和“按下时隐藏底部栏”

我的应用程序(简化)的结构是这样的: UITabBarController与一个UINavigationController持有一个UITableViewController作为根视图控制器。 当点击一个表视图控制器单元格,我推一个常规的UIViewController (让我们称之为VC)结束隐藏底部的标签栏。 (使用“隐藏底部栏时推”标志) 在故事板中,我将一个普通的UIView子类添加到VC,看起来像一个底部栏,我使用自动布局将其固定到VC视图的底部。 问题 当我推VC时,这个视图需要一秒钟的时间来固定到底部,它看起来像自动布局钉在底部好像标签栏没有隐藏,并在一秒后,它认识到标签栏是隐藏的,并移动它到真实的底部。 我知道这不是最好的解释,所以我添加了一个非常简单的项目来演示这个问题。

UIStackView支持iOS 8或7吗?

我知道UIStackview是iOS 9中的一个新function。如果我想让我的应用程序支持iOS 8或iOS 7,是否意味着我不应该使用堆栈视图?

自定义长宽比与自动布局

比方说,我有一个UIView包含一个孩子UIView必须是4:3。 我想在代码中使用AutoLayout来解决这个问题。 我一直在努力与AutoLayout,但我还没有想出如何做到这一点。 你知道如何解决这个问题吗? 非常感谢你。 我附上一张图片来更好地解释我的意思。 http://d.pr/i/d0Oc

在UIScrollView中使用自动布局的UITableView

目前,我正在使用一个UITableView以及包含在UIScrollView其他视图。 我希望UITableView的高度与内容高度相同。 为了使事情复杂化,我还插入/删除行以提供手风琴效果,以便当用户点击一行时,将显示该行的更多详细信息。 我已经完成了插入/删除操作,尽pipe目前它并没有更新它的超级视图的UIScrollView,所以重新计算了UIScrollView的内容大小,并且UITableView和UIScrollView中的其他视图显示正确。 我怎么能去实现这个,以便UIScrollView的大小调整,并且当我改变UITableView的内容时,它的内容正确地布置了? 我目前正在使用自动布局。

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

我想在设备旋转时修改布局约束。 我的UIViewController由2个UIViews组成,横向排列,纵向排列。 它确实工作,在willAnimateRotationToInterfaceOrientation ,我删除了所需的约束,并取而代之与他人有正确的布局… 但是有一些问题,在旋转过程中自动布局在willAnimateRotationToInterfaceOrientation被调用之前开始破坏约束,那么当设备重新定位发生的时候,我们的意思是在什么地方replace我们的约束呢? 另一个问题是性能,经过几轮的系统不会再破坏约束,但我有一个巨大的性能下降,尤其是在肖像模式… … –

今天iPad的扩展高度远远大于指定的高度

My Today扩展需要基于窗口小部件显示的内容具有dynamic高度。 我可以通过在最底部的元素上添加一个约束来实现:底部布局指南的顶部小于或等于底部最底部元素的底部,常数为0,优先级为999,乘数为1。 这与iPhone上的预期完全相同 – 小部件高度适合所有内容,并在显示下一个小部件之前应用默认的底部边距。 但在iPad上,它似乎将我的部件的高度设置为等于最大高度通知中心将允许一个部件 – 我的部件下面有很多空间,它几乎全屏。 我怎样才能删除额外的空间? 我确切地知道问题是什么,但不知道如何解决它 – 请参阅“问题”部分。 首先让我解释一下设置: 设置: 我把这个扩展的视图放在一个故事板上,没有任何事情是以编程的方式完成的。 视图由5个垂直堆叠的元素组成,其他一些水平排列。 这些是从上到下的垂直线的自动布局约束 – 没有说优先级是1000,乘数1: UILabel: height = 35, top space to top layout guide with constant of 10 UIButton: equal height and width to a different button (whose aspect ratio is 1:1, there is no fixed width/height), top space […]

何时可以激活/取消布局约束?

我已经在IB中设置了多组约束,并且我想以编程方式在它们之间切换,具体取决于某些状态。 有一个constraintsA一个出口集合,所有这些都被标记为从IB安装,并且一个constraintsB出口集合,所有这些都在IB中被卸载。 我可以以编程方式在两组之间切换,如下所示: NSLayoutConstraint.deactivateConstraints(constraintsA) NSLayoutConstraint.activateConstraints(constraintsB) 但是…我无法弄清楚什么时候这样做。 看来我应该能够做到这一点在viewDidLoad ,但我不能得到这个工作。 我已经尝试在设置约束后调用view.updateConstraints()和view.layoutSubviews() ,但无济于事。 我发现,如果我在viewDidLayoutSubviews设置约束,一切都按预期工作。 我想我想知道两件事情… 为什么我得到这种行为? 是否有可能激活/停用viewDidLoad约束?

topLayoutGuide在子视图控制器中

我有一个UIPageViewController与半透明的状态栏和导航栏。 它的topLayoutGuide是64像素,正如所料。 但是, UIPageViewController的子视图控制器UIPageViewController报告0像素的topLayoutGuide ,即使它们显示在状态栏和导航栏下方。 这是预期的行为? 如果是这样,在真正的topLayoutGuide下定位子视图控制器视图的最好方法是什么? (使用parentViewController.topLayoutGuide ,我认为这是一个黑客)

是否有可能与UITableView的tableHeaderView使用AutoLayout?

由于我发现AutoLayout我到处使用它,现在我试图用tableHeaderView来使用它。 我做了UIView一个subclass添加了一切(标签等),我想与他们的约束,然后我把这个CustomView到UITableView的tableHeaderView 。 一切工作得很好,除了UITableView总是显示在CustomView , 上面的意思是CustomView 在 UITableView 之下 ,所以不能被看到! 看来,无论我做什么, UITableView的tableHeaderView的height 总是 0(宽度,x和y也是这样)。 我的问题:是否有可能完成这个手动设置框架 ? 编辑:我正在使用的CustomView subview有这些约束: _title = [[UILabel alloc]init]; _title.text = @"Title"; [self addSubview:_title]; [_title keep:[KeepTopInset rules:@[[KeepEqual must:5]]]]; // title has to stay at least 5 away from the supperview Top [_title keep:[KeepRightInset rules:@[[KeepMin must:5]]]]; [_title keep:[KeepLeftInset rules:@[[KeepMin must:5]]]]; [_title keep:[KeepBottomInset rules:@[[KeepMin […]