我很難過在我的代碼中創建一個UIViews數組。我創建了一個棋盤,每個方塊都是一個UIView。在我的UIViewController類的聲明,我有以下 -創建一個UIViews數組
@interface ChessViewController : UIViewController
{
ChessSquareView *squares[64];
}
在我創建爲每個64個方格的意見,一個for循環這樣的.m文件 -
for (int i=0; i<64; i++)
squares[i] = [ [ChessSquareView alloc] initWithFrame:sq];
哪裏sq
是該廣場的位置和尺寸(CGRect
)。在ChessSquareView.m文件中,我將CGRect
存儲在一個變量中。我將它們打印在initWithFrame函數中,以確保我添加了正確的值。
後來在代碼中(例如touchEnded函數)我循環查看視圖數組並查找對象都是錯誤的。什麼是創建UIViews數組的正確方法?
編輯:
爲了澄清在touchEnded功能我通過意見循環推測用戶敲擊的位置。在該函數中,我使用NSStringFromCGRect
函數打印出每個視圖的frame
,它們都是錯誤的。
for (int i=0; i<25; i++)
{
NSLog(@"Checking Square %@", NSStringFromCGRect([squares[i] frame]));
}
1.請將UIViews正確放置?嘗試將一些隨機顏色添加到UIView的backgroundColor屬性中,當你添加它們並首先看到它。 2.您需要首先將位置轉換爲UIView的座標系。 – nsuinteger
@nsuinteger - UIViews被正確放置。我已經改變了這個問題,因爲我現在確信它是一個數組創建問題。 – user220201
使用NSArray,而不是C數組。 NSArray用於對象;它具有訪問和操作的有用方法,並且內存管理正確。 – matt