繁体   English   中英

在iOS应用中,如何让2个元素彼此相邻?

[英]in an iOS app, how can I get 2 elements to sit next to each other?

我是iOS开发的新手,正在研究我的第一个教程。 本教程跳过的一件事是定位。 我有一个列表,其中每个单元格旁边都有一个带有一些文本的图像。 至少在Interface Builder中是如此。 当我实际运行该应用程序时,图像出现在文本顶部(即,两者在屏幕左侧的位置相同)。

界面生成器

界面生成器

正在运行的应用程序

正在运行的应用

我本质上希望在CSS术语中是“ float:left”,甚至只是每个元素具有x / y坐标的相对定位(即,在运行应用程序时,故事板上出现的外观是否相同/相似) ), 那很好啊。

在使用所有各种View属性时,我找不到任何可以放置视图的东西……我可以在Interface Builder中找到可以放置视图的属性,但是这些设置似乎都不会在运行时转移到应用程序中,并且图像/文本始终出现在彼此的顶部。

对于新手问题,我深表歉意……这可能是一些简单/明显的事情让我不知所措。

如果您使用Xcode5进行测试,则默认情况下,该应用将使用自动版式功能。 而且您对此布局的限制似乎是错误的。如果您想使用AutoLayout将视图定位到正确的位置,则需要从Apple官方网站上阅读一些资料。如果您没有太多的学习时间,则可以可以尝试在没有AutoLayout的情况下编辑xib。 您可以在界面构建器的“文件检查器”中禁用自动布局。

如果您是iOS开发的新手(如我所愿 ),则应熟悉ELayout所建议的AutoLayout

如果您正在寻找一个快速解决问题的方法,那么以下所有选项都对我有用:

  1. 选择标签,然后选择“水平空间约束”并将其删除。 水平空间约束
  2. 选择标签并点击cmd-plus(即cmd + shift +等于)。 这将立即删除所有定位约束。
  3. 关闭自动版式。 禁用自动版式

还有其他方法可以解决我遇到的问题,但是通常该问题是错误的AutoLayout约束。

如果你觉得在代码舒服,我建议手动设置帧到CGRect您使用定义CGRectMake(origin.x, origin.y, width, height) 您也可以使用自动布局设置来执行此操作,但是我发现以编程方式定位元素可以为我提供更大的灵活性,并且,作为一名程序员,这比试图找出接口生成器中的选项要容易得多。

iOS坐标系是自上而下的 ,这意味着y = 0是屏幕的顶部,y = 568是屏幕的底部(在iPhone 5上)。 屏幕左侧的X为0。

坐标系相对于它们所在的视图。在您的情况下,您的元素位于UITableCell ,呈现引擎为其指定了自己的坐标系。 因此,如果您希望图像距单元格边缘的顶部距离为10px,左侧为padding:10px (css中为la padding:10px ),则可以将其框架设置为:

image.frame = CGRectMake(10, 10, 50, 50)

...假设图片为50x50。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM