簡體   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