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

在iOS应用程序中,如何让2个元素彼此相邻?,ios,interface-builder,Ios,Interface Builder,我是iOS开发新手,正在学习我的第一个教程。本教程略过的一件事是定位。我有一个列表,其中每个单元格都有一个图像,旁边有一些文本。至少在界面生成器中是这样的。当我实际运行应用程序时,图像显示在文本顶部(即,从屏幕左侧看,两者的位置完全相同) 界面生成器: 跑步应用程序: 我基本上想要的是CSS术语中的“float:left”,甚至只是每个元素的x/y坐标的相对定位(即,如果它在运行应用程序时看起来与故事板中显示的相同/相似),那就太好了 在使用各种视图属性时,我找不到任何可以定位视图的东西……

我是iOS开发新手,正在学习我的第一个教程。本教程略过的一件事是定位。我有一个列表,其中每个单元格都有一个图像,旁边有一些文本。至少在界面生成器中是这样的。当我实际运行应用程序时,图像显示在文本顶部(即,从屏幕左侧看,两者的位置完全相同)

界面生成器

跑步应用程序

我基本上想要的是CSS术语中的“float:left”,甚至只是每个元素的x/y坐标的相对定位(即,如果它在运行应用程序时看起来与故事板中显示的相同/相似),那就太好了

在使用各种视图属性时,我找不到任何可以定位视图的东西……我可以在Interface Builder中找到可以定位视图的属性,但在应用程序运行时,这些设置似乎都不会保留到应用程序中,并且图像/文本始终显示在彼此的顶部


我为这个新手的问题道歉……可能是一些简单/明显的东西从我身边溜走了。

如果您对代码感到满意,我建议手动将框架设置为
CGRect
,您可以使用
CGRectMake(origin.x,origin.y,width,height)定义。您也可以使用autolayout设置来实现这一点,但我发现以编程方式定位元素给了我更大的灵活性,而且,作为程序员,这比在interface builder中找出选项要容易得多

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

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

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

…假设图像为50x50。

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

如果您是iOS开发新手(就像我一样),您应该熟悉,正如Eric在回答中所建议的那样

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

  • 选择标签,然后选择水平空间约束并将其删除
  • 选择标签并点击cmd plus(即cmd+shift+equals)。这将一次删除所有定位约束
  • 关闭自动布局 还有其他方法可以解决我遇到的问题,但通常问题是自动布局约束不正确