내 코드에있는 UIView 배열을 만들지 못한다. 체스 판을 만들었고 각 사각형은 UIView입니다.UIView 배열 만들기
for (int i=0; i<64; i++)
squares[i] = [ [ChessSquareView alloc] initWithFrame:sq];
곳 -이 같은 for 루프에서 64 개 사각형 각각에 대한 뷰를 작성하고있는하는 .m 파일에서
@interface ChessViewController : UIViewController
{
ChessSquareView *squares[64];
}
- 내의 UIViewController 클래스 선언에서 나는 다음과 같은이 sq
은 해당 사각형에 대한 위치 및 크기 (CGRect
)입니다. ChessSquareView.m 파일에서 변수에 CGRect
을 저장합니다. 내가 올바른 값을 추가하고 있는지 확인하기 위해 initWithFrame 함수에서 인쇄하고 있습니다.
나중에 코드 (예 : touchEnded 함수)에서 뷰 배열을 반복하고 객체가 모두 잘못되었음을 알 수 있습니다. UIView 배열을 만드는 올바른 방법은 무엇입니까?
편집 :
나는 사용자가 탭 위치를 파악하는 견해 통해 반복하고있는 touchEnded 기능에 명확히합니다. 그 기능에서 나는 NSStringFromCGRect
기능을 사용하여 각보기에 대해 frame
을 인쇄하고 모두 잘못되었습니다. .H에서
for (int i=0; i<25; i++)
{
NSLog(@"Checking Square %@", NSStringFromCGRect([squares[i] frame]));
}
1. UIView가 올바르게 배치 되나요? 당신이 그들을 추가 할 때 UIView의 backgroundColor 속성에 임의의 색상을 넣어보십시오 & 이것을 먼저보십시오. 2. 먼저 UIView의 좌표계로 위치를 변환해야합니다. – nsuinteger
@nsuinteger - UIView가 올바르게 배치됩니다. 나는 배열 창조 문제를 확신하면서 질문을 변경했다. – user220201
C 배열이 아닌 NSArray를 사용하십시오. NSArray는 객체를위한 것이다. 그것은 접근과 조작을위한 유용한 방법을 가지고 있으며, 메모리는 올바르게 관리됩니다. – matt