2013-04-25 60 views
0

我不確定發生了什麼以及如何處理此問題。我在單元格中有一個UIView,並使用IB設置約束條件,並由於某種原因將它延伸到單元格的末尾。我怎樣才能阻止它伸展。iOS 6約束使UIView更長

enter image description here

這裏是結果:

enter image description here

我動態注入步進控制,但你可以看到的UIView一直延伸到單元格的結束。我試過pin寬度然後它完全混淆了一切,甚至不顯示UIView。

這裏是約束的截圖:

enter image description here

+0

如果步進應該完全地覆蓋藍色的UIView,爲什麼你需要藍色的UIView呢? – matt 2013-04-25 16:56:43

+0

它不得不覆蓋藍色的UIView和我有藍色的UIView的原因是我動態注入條件的步進。正如你所看到的藍色UIView向右擴展。我怎樣才能使它停止擴大和擊中細胞邊界。 – 2013-04-25 16:59:21

+0

但這不是理由;你不需要藍色的UIView爲了注入步進器!只需注入步進器,不用UIView。問題是你不明白如何動態地將步進器添加到單元格的「contentView」中? – matt 2013-04-25 17:00:39

回答

0

好吧,讓我在這裏得出一些區別。

  • 瑣碎的方式,這是你總是有在細胞步進(沒有的UIView)。對於那些我們不應該看到步進器的單元,您將其hidden設置爲YES;對於我們應該看到它的那些單元,您將其hidden設置爲NO。那是我會做的。

  • 程序員的方式做,這是你有沒有藍色的UIView在你的所有。您可以在代碼中添加步進器,並且您還可以在代碼中提供它的約束來定位它。你說:

    所以我沒有硬編碼的座標

    但在代碼中添加約束是「硬編碼」的座標。有了約束條件,你可以根據超級視圖中的插入來從概念上描述的位置,並且隨着超級視圖的大小調整,您仍然可以正確定位。所以沒有哲學反對加入步進器及其約束條件,只是懶惰不這樣做。

  • 懶惰但浪費的方式是做你在做什麼,即在筆尖添加藍色的UIView作爲指導。即使你使用藍色的UIView作爲指導,但是,如果你的約束是正確的,你應該能夠做到這一點。我剛剛嘗試過,但無法重現該問題:我的藍色視圖出現在Interface Builder中出現的相同位置的單元格中。

  • 即時的解決辦法是不使用自動佈局從其中一個UITableViewCell繪製筆尖 - 即取消選中「使用自動版式」中的文件檢查此筆尖。因此,您將使用老式的彈簧和支柱(自動調整)來定位子視圖。

enter image description here

+0

無法取消選中自動佈局! – 2013-04-25 17:02:32

+0

爲什麼不是?我可以。 – matt 2013-04-25 17:35:40