2011-10-12 43 views
-1

我是一名初級程序員 我面臨的問題是某些子程序沒有顯示出來, 不知道它是否是增加子視圖順序問題或其他問題。 希望如果有人能提供建議或解決方案.thanks所有objective c addSubview order

for (int i = 0; i < NUM_DISHES; i++) {    

    UIImageView* img_steps = [[UIImageView alloc] initWithImage:[UIImage imageNamed:[NSString stringWithFormat:@"%d.jpg", i]]]; 
     //IMPORTANT: The i*W_IPAD means that 1st 0*1024 , 1*1024 , 2*1024.............and so on 
     [img_steps setFrame:CGRectMake(W_IPAD, 0, W_IPAD , H_UPFR)]; 


     UIImageView* imageset = [[UIImageView alloc] initWithImage:[UIImage imageNamed:[ary_img objectAtIndex:i]]]; 
     [imageset setFrame:CGRectMake(89, 9, H_INGREPHOTO, W_INGREPHOTO)]; 
     [ary_image addObject:imageset]; 


     //ingredient amount section 
     UILabel* lbl_amt = [[UILabel alloc] initWithFrame:CGRectMake(128, 177, 190, 33)]; 
     [lbl_amt setText:[ary_amount objectAtIndex:i]]; 
     [lbl_amt setFont:[UIFont systemFontOfSize:25]]; 
     [lbl_amt setTextColor:[UIColor blackColor]]; 
     [lbl_amt setBackgroundColor:[UIColor clearColor]]; 
     [ary_amt addObject:lbl_amt]; 


    //method section 
     UILabel* lbl_method = [[UILabel alloc] initWithFrame:CGRectMake(596, 93, 130, 32)]; 
     [lbl_method setText:[ary_meth objectAtIndex:i]]; 
     [lbl_method setBackgroundColor:[UIColor clearColor]]; 
     [lbl_method setFont:[UIFont systemFontOfSize:30]]; 
     [lbl_method setTextColor:[UIColor blackColor]]; 
     [ary_method addObject:lbl_method]; 


    //alpha bar step number step number section 
     UILabel* lbl_numberstep = [[UILabel alloc] initWithFrame:CGRectMake(90 + (130 * i), 5, W_NUMBERSTEP, H_NUMBERSTEP)]; 
     [lbl_numberstep setText:[NSString stringWithFormat:@"%d",i + 1]]; 
     [lbl_numberstep setFont:[UIFont systemFontOfSize:20]]; 
     [lbl_numberstep setBackgroundColor:[UIColor clearColor]]; 
     [lbl_numberstep setTextColor:[UIColor blackColor]]; 



     [self.view addSubview:img_steps]; 
     [alpha_bar addSubview:lbl_numberstep]; 
     [alphaframe addSubview:[ary_method objectAtIndex:i]]; 
     [alphaframe addSubview:[ary_amt objectAtIndex:i]]; 
     [alphaframe addSubview:[ary_image objectAtIndex:i]]; 
    } 

    // Section --- Add Subview 

    [self.view addSubview:background]; 

    [background addSubview:main_view]; 


    [main_view addSubview:alpha_bar]; 
    [main_view addSubview:alphaframe]; 

    [main_view addSubview:but_transit_to_a]; //can add to the main_view  
    [main_view addSubview:left_buttom]; 
    [main_view addSubview:right_buttom]; 

    [alpha_bar addSubview:bar]; 
    [alpha_bar addSubview:lbl_lastnum]; 
    [alphaframe addSubview:but_transit_to_c]; 

    } 


    return self; 
} 
+0

向我們展示您的代碼,您如何製作子視圖的幀。 –

+0

如果u顯示我們的代碼,我們可以很容易地幫助ü –

+0

有什麼用addSubview –

回答

2

爲了使子視圖前,你可以使用[yourMainView bringSubviewToFront:yoursubview]。如果您的子視圖未顯示,請檢查您是否已正確設置子視圖framehidden = NO

+0

抱歉蒂姆可能會問我是否在[主視圖addsubview:新視圖]然後我鍵入代碼你寫? –

+0

是啊,你添加子視圖後,再你把它帶到前面。 – Tim

0

view.subviews數組保存索引0中最底部的視圖,並按與其「z索引」相關的順序保存視圖。因此,[myView.subviews lastObject];將始終在所有其他視圖前提供視圖,並且[myView.subviews objectAtIndex:0];將具有該視圖下方所有視圖的視圖。

UIView docs - subviews property

您可以使用此屬性檢索與 自定義視圖層次結構相關聯的子視圖。數組 中子視圖的順序反映了它們在屏幕上的可見順序,索引0 的視圖是最後面的視圖。對於在UIKit和其他 系統框架中聲明的複雜視圖,視圖的任何子視圖通常被認爲是私有的,並且可隨時更改。因此,您不應 嘗試檢索或修改這些類型的 系統提供的視圖的子視圖。如果這樣做,您的代碼可能會在未來的 系統更新期間中斷。

+0

對不起哈哈我真不明白,真的很抱歉可以妳告訴我簡單的解決方案也許我可以很容易地獲得烏爾珍貴的幫助 –

+0

THX CHOWN仍然存在如何糾正呢? –

+0

大家問題的意義 –