2013-08-26 85 views
0

所以我想添加一個UISwitch到我右邊的表格單元格中。 我第一次嘗試adding it to the accesoryView,但是當我在表格中進入編輯模式時,UISwitch消失了。 所以現在我added it to the contentView,這是偉大的工作,沒有消散。但它將它添加到左上角。如何正確定位右側的UITableView單元格子視圖?

所以我試圖把它添加到右邊,但我想遠離絕對值,以支持所有大小和方向。

所以我想這個代碼:

[[cell contentView] addSubview:switchView]; 
switchView.frame = CGRectMake(cell.contentView.frame.size.width - 
            switchView.frame.size.width, 
           0, 
           switchView.frame.size.width, 
           switchView.frame.size.height); 

,但是這是我得到:

enter image description here

任何想法我怎麼能解決這個問題?

+2

我認爲你應該嘗試創建自定義單元格,並在你添加到單元格中的控件中使用自動更改屬性,這樣在旋轉時控件可以自行調整。 – iphonic

+0

嗯......我可以。但是如果可能的話,我試圖在代碼中完成所有工作。如果我沒有得到任何好的答案,我一定會走這條路。感謝您的建議! – Jan

回答

2

您需要在交換機上設置適當的自動識別掩碼或佈局約束。

如果您使用的是彈簧和支柱,您只希望開關具有靈活的左邊距。這將使其與您的超級視圖的右側邊緣保持固定的距離 - 內容視圖很可能會在添加切換器和出現在屏幕上之間調整大小。

要設置這個面膜:

switchView.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin; 

如果您在使用自動佈局(!這使得不使用特定的幀值很容易),你需要將開關引腳到上海華的右邊緣 - 可視格式的[switch]-|

+0

我實際上並沒有使用!因爲我是通過代碼完成的。如果我沒有得到任何代碼解決方案,並且我最終走上了這條路線,我會將答案給予您。謝謝! – Jan

+2

這是一個純代碼解決方案。您可以在代碼中設置自動調整掩碼或佈局約束。所有視圖都有一個默認的自動識別遮罩,通常有利於固定到頂部和左側。我會編輯答案。 – jrturton

+0

哦!不知道這個!它實際上像一個魅力工作!謝謝! – Jan

相關問題