Tag: 自动

AutoLayout不使用Storyboard或Interface Builder

我正在构build一个应用程序,我希望完全避免使用Storyboard和Interface Builder,因此应该在代码中指定所有UI。 我正在使用PureLayout ,一个很好的API来configurationAutoLayout约束。 但是,我的问题是,似乎像AutoLayout不使用Interface Builder时被禁用。 updateViewConstraints ,根据PureLayout作者给出的build议放置布局的方法根本不被调用。 只是为了提供更多有关我的设置的信息: 删除Main.storyboard并从Info.plist删除条目 在AppDelegate.m手动设置self.window并添加MainMainController UINavigationController作为rootViewController 如上所述,我的主要问题是, updateViewConstraints不会在MainViewController调用,但UI元素都显示与我在初始化过程中传递给他们的frame 。 注意 :在我看来,我只是需要在某处启用某个标志来模仿Interface Builder中的checkbox,您可以使用它来指示是否要使用AutoLayout 。 MainViewController.m @interface MainViewController () @property (nonatomic, strong) UIButton *startButton; @property (nonatomic, assign) BOOL didSetupConstraints; @end @implementation MainViewController – (void)viewDidLoad { [super viewDidLoad]; [self.view addSubview:self.startButton]; [self.view setTranslatesAutoresizingMaskIntoConstraints:NO]; } – (UIButton *)startButton { if (!_startButton) { UIButton *startButton […]

当状态栏隐藏旋转时调整视图

我浏览过四处寻找答案,但我只find了类似问题的人,而不是这个确切的问题,所以希望这里有人能帮助我! 我有一个iPad应用程序。 在iPad上,当您将iPad放在纵向或横向时,始终显示带有时钟和电池的状态栏。 出于这个原因,我在我的一些视图控制器的顶部有一些自定义工具栏,这些工具栏占了那20点。 我现在正在努力使我的应用程序通用。 我注意到的第一件事是,当iPhone在纵向模式下的帮助显示状态栏,但是当它在横向模式下举行,状态栏隐藏,现在我有一个20点太高的工具栏。 我不总是隐藏或总是显示状态栏感兴趣。 我认为在手机上的风景模式隐藏它的function是好的。 我想要做的是能够检测状态栏是否隐藏,以便我可以调整我的工具栏的Y位置(所以使它为0或-20)。 更好的解决scheme是,如果有一种方法可以设置我的布局约束来处理这种情况。

如何在Interface Builder中使用自动布局创build键盘附件视图?

我想添加一个“完成”button和分段控制到十进制键盘。 理想情况下,我想在界面生成器中使用自动布局布局键盘附件视图。 这甚至有可能吗? 我是否创build一个新的XIB,或者我可以在现有的Storyboard场景中做些什么? 如何将附件视图附加到适当的文本字段?

在iOS上,边距,边缘插入,内容插入,alignmentmatrix,布局边距,锚点​​之间有什么区别?

似乎有几个不同的选项/术语和iOS社区的人在布局方面使用(例如,UIEdgeInsets是一种types,但有时我听到/读“设置插页”或版面边距vs布局指南)。 我一直能find一个有效的select。 但我不确定我是否正在使用正确的工具。 有人可以帮助提供布局的这些不同方面之间的清晰度,什么时候以最好的方式使用每个方面?

AutoLayout:UIView中的UIView有不正确的框架

我正在使用故事板中的AutoLayout,并且一切似乎都很顺利。 但是,当我把一个UIView放在另一个里面,并且把所有的约束都应用到容器和它的子viewDidLayoutSubviews: ,我注意到这个框架在viewDidLayoutSubviews:是不正确的。 我不希望根据我的限制来计算这个框架,而是一些令人厌恶的大框架(尽pipe是在正确的起源)。 例如,而不是{{26,10},{444,10}}的框架,我得到了{{0,0},{320,568}} 。 奇怪的是, 这只发生在孩子UIView,当我把它放在另一个UIView,有一些约束适用于它的超视图(这是视图控制器的视图)。 由于我的印象是,根据我在viewDidLayoutSubviews:方法中的约束,我可以期待我的观点得到适当的布置viewDidLayoutSubviews:我很困惑,为什么会发生这种情况。 我做了什么不正确的假设? 如果有人能帮助我指出正确的方向,我将不胜感激。 谢谢! 注意:如果我在viewDidAppear:执行了正确的依赖于框架的设置,这个问题就完全解决了,但是这对我来说是一个不太令人满意的解决方法。

自动导出和设备定位

我正在开发一个supports portrait and landscape modes的应用程序。 我正在使用auto layout to arrange my views 。 正如我一直在阅读很多职位,我已经意识到,开发人员通常使用以下方法之一。 1.第一种方法: 实现UIViewController:updateConstraints方法并根据设备方向更新约束。 2.第二种方法: 实现UIViewController:viewWillLayoutSubviews方法并根据设备方向更新约束。 任何人都可以告诉我什么是最好的方法来使用? 我一直在寻找结合自动旋转和自动布局的最佳实践,现在还没有。 谢谢。

UITableView:如何在单击button时dynamic更改单元格高度?

我有一个UITableView,其中每个单元格都有一个button。 点击button时,单元格的高度将会改变。 当然,整个桌面的高度会根据它而改变。 在漫长的冲浪过程中,我找不到方法。 什么是实现这个优雅的解决scheme?

embedded在其他视图中的UITableView的段标题位置不正确

我有一个UITableViewembedded在另一个视图,如下所示: 导航控制器以模态方式显示,所以它的布局应该是全屏幕,而不依赖于故事板的任何其他部分。 如果使用固定的自动布局约束来设置configuration文件视图的上半部分,如下所示: 图像视图顶部布局指南(灰色):20pt 图像视图为“交易”标签:20pt “交易”标签到容器视图:20pt 容器视图距离底部布局指南,前后空格:全0pt。 所以基本上,当屏幕较大时,容器视图应该填充剩余的空间。 在容器视图中,我embedded了一个表视图(包括适当的控制器)。 为了使问题更加明显,我给容器视图一个绿色的背景和表格视图一个蓝色的(这就是为什么部分标题略微蓝色)。 当然,我希望表视图填充整个容器视图。 但这只是部分发生: 所以表视图确实填充完整的容器视图(表视图的背景颜色是蓝色),但是节标题被定位为低。 如果向下滚动,部分标题保持在相同的位置,但单元向上移动并显示在其上方: 我已经尝试检查并取消选中表视图控制器的“扩展边”checkbox,控制它是否扩展了“顶部酒吧”,“底部酒吧”和“不透明酒吧”,但没有帮助。 它看起来好像表视图为导航栏和状态栏留下空间,但它不应该和我不明白如何使它正确地布置节标头和单元格。 任何想法,为什么这是我怎样才能解决它?

自动布局和通话状态栏

我想问一下自动布局和通话状态栏。 这是一个简单的场景,演示了我的问题: 使用“使用故事板”启用项目创build 添加“视图控制器”并启用其“是初始视图控制器” 将控制器视图的背景颜色设置为红色 在控制器视图中添加“表格视图” 表视图应该有4个布局约束(领先,顶部,尾部,底部)的Superview常量设置为0。 现在,当我在模拟器中运行这个应用程序,并按⌘ + T我可以看到红色的背景,而通话状态栏animation英寸是否有可能摆脱这个毛刺?

如何根据input的文本增加文本字段的宽度?

我需要根据其内容增加文本字段的宽度。 当用户input文本时,文本字段大小应该自动增加。 我有一个closures(X)button旁边的文本字段。 我限制了文本字段和button,使文本字段居中在屏幕上,并且button与其相邻。 (文本字段应该是可编辑的,button应该是可点击的) 文本字段大小是这样的: 当我input文字时,尺寸应该会自动增加: 我怎样才能做到这一点?