有兩個subView, UILabel 和 UIImageView 。我希望在一個view中水平中心顯示。然後兩個視圖是挨著的,如下:
-------------------------------
| Superview |
| |
| [label] [imageview] |
-------------------------------
在兩個view中還有一些空隙。不知道能不能在自動布局中實現?
需要自己計算他們的frame.
總的思路是:先把它們添加到視圖中去. 然後再重新計算得到它們的frame位置 .
這裡主要是水平居中,所以你需要計算得出它們的origin.x 的值. 這裡需要計算出uilabel及uiimageview 的width再加上間距的值.即 label.frame.size.width+imageview.frame.size.width+space
CGFloat space=10;
CGFloat summaryWidth=label.frame.size.width+imageview.frame.size.width+space;
CGFloat posX=(self.view.frame-summaryWidth)/2;
//reset frame.
CGRect lblFrame=label.frame;
lblFrame.origin.x=posX;
label.frame=lblFrame;
CGRect imgFrame=imageview.frame;
imgFrame.origin.x=posX+label.frame.size.width+space;
imageview.frame=imgFrame;