"마법사"와 같은 목적으로 간단한 창을 만들었습니다. (Apple 지침에 따라 기본적으로 금지되어 있음을 알고 고객을 설득하려고했지만 무엇이든)보기 위치 변경 (0,0)
그것은 두 개의 내부 사용자 정의보기하는 "이전", "다음"버튼을 포함 하단 부분에 하나, 그리고 공간의 대부분을 소요 상단에 더 큰 볼 수있는 단순한이다.
아래쪽보기 "NavigationView"와 맨 위에있는 "ContainerView"를 호출했습니다.
사용자가 이동해야하는 일련의보기를 보유 할 배열을 만들었습니다 e를 통해 "다음"및 "이전"버튼을 누릅니다.
여기 내 코드가 있습니다.
- (IBAction) next:(id)sender{
currentViewIndex++;
[self animatePushView:YES];
}
- (IBAction)previous:(id)sender{
currentViewIndex--;
[self animatePushView:NO];
}
- (void) animatePushView:(BOOL)forward{
NSView *nextView = [viewCollection objectAtIndex:currentViewIndex];
for (NSView *subView in [containerView subviews]) {
[subView removeFromSuperview];
}
[containerView addSubview:nextView];
[nextView setFrame:containerView.bounds];
[containerView setNeedsDisplay:YES];
}
나는 꽤 간단하다고 생각합니다. 표시 할 다음보기를 포함하는 배열이 있습니다.
어떻게됩니까? 다음보기가 ContainerView의 왼쪽 하단 부분을 중심으로 이루어집니다. 왜 이런 일이 생길까요?
또한 내가 생각하기에, 나는 꽤 오랫동안 객관적으로 일해 왔지만,보기를 관리하는 초보자입니다. 실종 된 모범 사례가 있다면 제안에 개방적이다. 감사합니다.
편집 : 이러한 뷰 중 일부는 서로 다른 크기가 , 내가보기 크기에 따라 창 크기를 변경할 수 있도록하고 싶습니다 :
내가 추가하는 것을 잊었다.
코드를 시도했는데 마치 내 것이었지만 창 왼쪽 하단의보기가 깜박입니다. 플래시가 지나면보기가 사라집니다. 내 코드에 다른 문제가있을 것 같네요. 보기가 올바르게 유지되지 않았습니까? 편집 : 보기를 보유 된 속성으로 선언했습니다. 그게 내가 한 유일한 변화이며, 지금은 이전처럼보기가 '깜박'하지만 정확한 위치에 깜박입니다. – XelharK
위치 문제가보기가 올바르게 유지되지 않아보기가 저장되어 있는지 확실하지 않습니다. 컬렉션에. 뷰 프레임은 부모 좌표계로 표현됩니다. 컨테이너 뷰에 한 뷰를 올바르게 배치하면 다음 뷰에서 동일한 프레임을 쉽게 설정할 수 있습니다. 그러나 우리는 전체 코드의 일부만을 차지했습니다. 깜박이는 문제도 좋지 않습니까, 전환 할 때마다 귀하의 견해가 해제됩니까? – Vince
아니, 전혀. 실제로 이러한 뷰를 사용하는 전체 코드입니다. 코드의 다른 부분에서는 참조하지 않습니다. 내가 알아 낸 또 다른 답변을 추가했는데, 아마도 보유 개수와 관련이 있습니까? – XelharK