![](/img/trans.png)
[英]how can I center two elements (without knowing their width) next to each other in Swift?
[英]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 。
如果您正在寻找一个快速解决问题的方法,那么以下所有选项都对我有用:
还有其他方法可以解决我遇到的问题,但是通常该问题是错误的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.