2011-05-05 55 views
0

我有一個UIView,我正在放置UIImageView的,每個UIImageView是16像素寬。UIView subview placement

該查詢是如果我使用addSubView添加5個UIImageViews,並且UIView在16個高300寬的範圍內指定,是否有任何方法讓視圖中的圖像「堆疊」 ,以便圖像不在彼此之上?就像將圖像標籤添加到網頁一樣。

+0

你能解釋一下「_stack up_以使圖像不在彼此之上」嗎?這聽起來像你希望他們在彼此之上,但不是彼此之上。 – ughoavgfhw 2011-05-05 18:30:01

回答

2

我看到這樣做的最簡單的方法就是保持您上次放置的圖像的流水賬,然後用寬度增加,這樣的事情:

-(void) addImage:(UIImage*)img toView:(UIView*)view 
{ 
    static CGRect curFrame = CGRectMake (0,0,16,16); 
    UIImageView* imgView = [[UIImageView alloc] initWithFrame:curFrame]; 
    imgView.image = img; 
    [view addSubview:imgView]; 

    curFrame.origin.x += 16; 
} 

這將有圖像出現在您查看從左到右

+1

你不必使用靜態變量來實現這一點,我只是想使用一些在函數調用中持久化的東西。你的類的一個成員變量可能會更適合,這樣它的作用域就在函數之外 – 2011-05-05 18:43:35

1

我想我正確理解你的問題。你想讓所有的圖像排成一行嗎?您需要設置UIImageView視圖的框架。 orgin將是圖像左上角的位置(包含它的UIView內的x,y座標) - 所以每次添加另一個圖像時,您都會移動該值超過16。