2012-11-06 76 views
1

我試圖從一些UILabels(這是一個插座集合的一部分)的中心屬性獲取CGPoint。現在,當我這樣做:UILabel.center是0?這怎麼可能?

for (UILabel *label in labelCollection) { 
     NSLog(@"%f", label.center.x); 
} 

它只是返回0,與center.y相同?怎麼來的?我需要提前這些座標嘿嘿:)

感謝

//編輯 上傳的圖片:以「A」「B」「C」「d」的標籤,是我說的標籤。我試着改變代碼中的text.property,這很好,但它不會給我它的座標。 example

+0

是否刪除約束運行該循環時標籤在屏幕上顯示? –

+0

是的,它們正在屏幕上顯示。 – Seerex

+0

我想嘗試記錄他們的幀值,看看是否有任何可疑的東西。 (NSStringFromRect(label.frame)) –

回答

0

我想出了答案,這與我在做viewDidLoad中的所有事情有關,我應該在viewDidAppear中做這件事。它必須是因爲在viewDidLoad上,它還沒有被放置,因此我仍然可以改變文本,因爲對象標籤被創建了,但是我不能得到它還沒有放置的原點。

感謝幫助小夥子。

+0

或在'awakeFromNib'中。加載視圖之前,對象不是「那裏」。 'viewWillAppear'和'viewDidAppear'之前發生了什麼。 – EricLeaf

0

驗證該視圖是否具有超級視圖。該值取決於超視圖的座標。

+0

我在故事板編輯器的主視圖背景添加了視圖,他們應該有一個超級視圖,否則他們無法添加到屏幕上,他們可以嗎? – Seerex

+0

雖然,我確實將它轉換爲UIController而不是UIView的子類,也許這會弄亂它? – Seerex

+0

只是將它改回爲UIView,仍然是同樣的問題 – Seerex

0

您刪除的約束,然後運行該應用程序可能會限制創建問題,因爲新的Xcode的限制,某些功能和屬性創建的問題,所以首先通過取消選中「使用autlayout」,那麼你檢查應用程序