2012-09-27 4 views
1

하나의 UIVIew에는 5 아이콘 (UIImageView)이 있습니다. 나는 아이콘을 보이거나 감춘다. 괜찮아. 하지만 내가 숨기지 않으면 숨겨진 (또는 제거되지 않은)보기의 중심을 보여주는 아이콘 2 개를 숨길 수 있습니다.UIView 중심 X UIImageView

경우 모두 표시 :

http://sherad.info/elotte.jpg 내가보기 2 아이콘 (내가 숨겨진 설정하지만, 같은 효과를 시도)에서 제거

[주 removeFromSuperview]; [sms removeFromSuperview]; 이 후

:

http://sherad.info/utana.jpg

내가보기의 중앙에있는 3 아이콘 쇼를합니다. 그래서 어떻게 든 다시 UIView 안에 아이콘을 정렬합니다. 내가 어떻게 해결할 수 있니? thx.

답변

1

아이콘 뒤에있는 검은 색 영역은 UIView이고 고정 된 위치에 아이콘이 추가되었다고 가정합니다. 대신 투명했던 두 번째 UIView를 만들었다면 어떻게 될까요? 어떤 아이콘을 표시할지 결정하고 두 번째보기에 추가하십시오. 그것은으로 두 번째보기의 프레임을 다시 두 번째보기는 첫 번째보기와 동일한 크기 인로 시작하지만, 적은 표시 할 한 번, 두 번째보기

for (yourIcon *icon in [secondView subviews]) { 
    [icon removeFromSuperview]; 
} 

에서 모든 아이콘을 제거 할 것 길이 당신이 원하는 한 후, 아이콘을 재-추가 배치 첫 번째보기

secondView.center = firstView.center; 

의 중심에 하나

[secondView setNeedsDisplay] 

을하거나 경우 firstView의 하위 뷰로 다시 추가 이전 ously 그것을 제거했다 (나는 그것이 필요하다고 생각하지 않는다).

+0

xx이 문제는 해결되었습니다 ... thx again – Sherad

+0

안녕하세요. 가능한 경우 내 텍스트의 왼쪽에있는 내 대답을 올바른 것으로 선택하십시오 (체크 표시). – TheJer

0

하위보기는 몇 개의 다른 아이콘이 있는지에 따라 서로 상대적으로 위치해야합니다. 아이콘을 추가하거나 제거하는 이벤트가있을 때마다 아이콘 위치를 스스로 결정하는 레이아웃 코드를 호출해야합니다.

뷰를 제거하려면 superview가 추가 된 하위 뷰를 계산하고, 화면 너비를 카운트로 나눈 새 x 좌표를 만든 다음 모든 하위 뷰의 프레임을 설정해야합니다.

아마도 autolayout으로 이것을 수행하는 방법이있을 수 있지만 그 방법에 익숙하지 않습니다.

관련 문제