2014-03-05 2 views
0

사용자가보기와 상호 작용하는 방식 (확대/축소)에 따라 조정되는 눈금을 만들려고합니다. 내 견해가 내 견해의 중심에 고정되어 있습니다. 사용자가 확대 할 때 가로보기를 넓히거나 그 반대로 조정할 때만이보기의 너비를 조정하려고합니다. 뷰 자체에는 왼쪽 틱과 오른쪽 틱을 나타내는 UIView, 중심 틱 및 다음과 같은 모든 것을 연결하는 가로보기가 포함되어 있습니다.동적으로 다른 UIView 내부 UIView 크기 조정

| ------ | ------ |

저울보기는 다른 4 개의보기를 포함하는 컨테이너입니다. 자동 레이아웃을 사용해야 만 다른 뷰가 포함 된 뷰의 프레임을 기준으로 뷰가 조정되므로 궁금합니다. 아니면 다른 접근법이 있습니까? 이것을 CALayer를 사용하고 변환을 사용하여 그립니다.

답변

0

개인적으로는 autoresizingMasks와 함께 할 것인데, 적어도 프로그래밍 방식으로 할당 될 때는 꽤 일관성이 있습니다. InterfaceBuilder는 또 다른 이야기였습니다.

topView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleBottomMargin; 

기본적으로, 이것은 (상위 뷰 바닥 평면도 하단)에서 아래쪽 여백이 유연하고 topView의 폭이 유연한 것을 의미한다. 다른 모든 여백은 유지됩니다. 따라서 상위 뷰의 왼쪽에있는 topView의 왼쪽은 상위 뷰의 크기에 관계없이 항상 동일합니다. 오른쪽 측면과 마찬가지로, topView는 유연한 너비를 가질 수있는 권한이 부여 되었기 때문에 이러한 여백을 유지하기 위해 적절하게 늘릴 것입니다.

다른 방법이 있지만 잘하면이 방법을 사용하면 도움이됩니다.

+0

예, IB의 자동 레이아웃을 사용하지 않고 크기를 조절하는 마스크를 망쳐 놓고 있습니다. 원하는대로 작동하는 것 같습니다. – kschins

0

여기에있는 문제는 "4 가지 UIView"입니다.

대신 을 입력하십시오. UIView : 실제 크기 (100 %에 있어야하는 시간, 확대되는 거리)에 따라 자체 그림 크기를 조정하는 방법을 알고있는 뷰입니다. 또는 밖으로).

그런 다음 줌이 발생할 때마다 다시 그리기 만하면됩니다 (스크롤보기 대리자 메서드를 통해 쉽게 감지 할 수 있음).

실시간으로 그리는 방법을 모르기 때문에 원래 "4 개의 UIView"를 사용했을 수도 있습니다. 하지만 iOS 프로그래밍에 필수적이므로 계속 진행하고이를 수행하는 방법을 배우면 훨씬 행복해집니다.

+0

http://www.apeth.com/iOSBook/ch15.html – matt

+0

링크를로드 할 때 그림에 대한 추가 정보를 묻는 말을 실제로 입력했습니다. – Logan

+0

당신이 묘사 한 것과 같은 자기 그림 "저울"위젯을 작성하는 코드를 약 1 분 30 초 안에 작성할 수 있습니다. 그것은 매우 어려울 수 없다는 것을 의미합니다! :) 그리고 자주 다시 그려야하는 견해를 두려워하지 마십시오. iOS에서 이런 종류의 드로잉은 매우 빠릅니다. – matt