문제

올바른 질문을하는지 확실하지 않기 때문에 내가하고 싶은 일을 말하면서 시작하겠습니다. 나는 그리드 기반지도를 만들고 있으며지도의 상태와 프리젠 테이션을 유지하기 위해 다양한 객체를 보유 할 것입니다. 각 객체는 타일 클래스입니다. Uiview 또는 Sublass nsobject를 서브 클래스하고 Uiview의 ivar가 있어야합니다. 또한 UIView 내부에 UIIMAGEVIEW를 사용하여 해당 맵의 비트를 나타내는 이미지를로드 할 계획이었습니다. 마지막으로, 나는 펜촉에서보기를로드하고 싶었습니다.

개별적으로 나는 이러한 각 작업을 수행하는 방법을 알고 있지만 모범 사례는 확실하지 않습니다. 이견있는 사람?

도움이 되었습니까?

해결책

핵심 애니메이션 레이어를 고려해 보셨습니까? 각각 자체의 한계와 뷰 안에 위치를 갖는 레이어 그리드로 단일보기를 만들 수 있습니다. 필요한 것을 줄 수있는 것 같습니다. 전화에서 이미지로 레이어 내용을 설정하는 것만 큼 간단합니다.

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];

가변 그리드는 어딘가에 할당 한 uiimage*입니다. 레이어 직장과 위치를 계산하고 그에 따라 배치하면됩니다.

다른 팁

특정 클래스/객체가 모델, 컨트롤러 및 뷰로 구성된 명확한 정의가 있는지 확인하십시오. 귀하의 데이터 및 데이터 로직은 모델에 있어야하며, 뷰에 디스플레이가 있어야하며 컨트롤러와 함께 연결해야합니다.

그리드를 달성하는 가장 간단한 방법은 단일 컨트롤러로 배치 된 UIIMAGEVIEW를 사용하는 것입니다. 이 모델은 맵 사각형과 컨트롤러로 릴레이 사이의 논리적 관계를 추적하여 이미지를 uiimageview에로드 할 것입니다. 컨트롤러는 펜촉에서 모든 것을로드하는 것을 처리합니다.

그러나 Calayers를 사용하는 것이 선호되는 최첨단 방법입니다. 기본 모델, 컨트롤러, 뷰 관계는 Calayers가 ImageViews를 교체한다는 점을 제외하고는 동일합니다.

제대로 제대로 해제되면 uiimageview의 서브 클래스를 만들 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top