我會開始說我想做什麼,因爲我不確定我是否問正確的問題。我正在製作一個基於網格的地圖,並將持有一組對象來保持地圖的狀態和表示。每個對象將是一個Tile類。我應該繼承UIView或subclass NSObject並擁有一個UIView的ivar。我也計劃在UIView中有一個UIImageView來加載表示地圖位的圖像。最後,我想加載來自NIB的視圖。繼承UIView或與UIView合作
單獨我知道如何做這些事情,但不知道最佳實踐。有什麼想法嗎?
我會開始說我想做什麼,因爲我不確定我是否問正確的問題。我正在製作一個基於網格的地圖,並將持有一組對象來保持地圖的狀態和表示。每個對象將是一個Tile類。我應該繼承UIView或subclass NSObject並擁有一個UIView的ivar。我也計劃在UIView中有一個UIImageView來加載表示地圖位的圖像。最後,我想加載來自NIB的視圖。繼承UIView或與UIView合作
單獨我知道如何做這些事情,但不知道最佳實踐。有什麼想法嗎?
您是否考慮過Core Animation圖層?您可以創建一個單獨的視圖,其中每個圖層都有自己的邊界和視圖內的位置。這聽起來像它可能會給你你需要的東西。在電話中,設置圖層的內容用圖像是如此簡單:
CALayer *gridLayer = [CALayer layer];
[gridLayer setContents:(id)[gridImage CGImage]];
[gridLayer setBounds:[gridImage bounds]];
// Position the layer's center a x:25.0 y:25.0 within the view
[gridLayer setPosition:CGPointMake(25.0f, 25.0f)];
[[view layer] addSublayer:gridLayer];
變量gridImage是*您在什麼地方分配一個UIImage。你只需要計算你的圖層rects和位置,並相應地放置它們。
如果我理解正確的話,你可以創建UIImageView的子類。
確保您對哪些特定的類/對象包括您的模型,控制器和視圖有清晰的定義。您的數據和數據邏輯應該在模型中,您的顯示在視圖中,並且應該將它們與控制器綁定在一起。
完成網格的最簡單方法是使用由單個控制器定位的UIImageView。該模型將跟蹤地圖方塊之間的邏輯關係,並將其傳遞給將把圖像加載到UIIMageView的控制器。控制器將處理從nib加載的所有內容。
但是,使用CALayers是首選的切削刃方法。基本的模型,控制器,視圖關係是相同的,除了CALayers取代ImageViews。
ooph,完全忽略了'iphone'標籤,哎呀。 – rob5408 2009-10-28 23:05:51