저는 IOS 개발을 가르치고 있으며, 제가하려고하는 내용 중 하나에 문제가 있습니다. 기본적으로 필자는 표시 할 사진 목록을 가지고 있으므로 목록보기로 표보기를 만들었고 목표는 셀을 클릭하고 화면 크기에 맞게 그림을 자동 표시하는 것입니다. 나는 스스로를 관리하는 법을 배울 수 있도록 ARC를 꺼 놓았다.scrollView 경계 크기는 항상 0입니다.
테이블 뷰에서 셀을 선택하면 스크롤 뷰와 이미지 뷰가있는 UIViewController가 호출됩니다.
이
내가 콘센트에 연결하는 방법입니다 : 내가 필요- (void) viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
[self.scrollView setZoomScale:1 animated:NO];
CGSize boundsSize = self.scrollView.bounds.size;
NSLog(@"@@@AMRO scrollboundsSize is width %f and height %f", boundsSize.width,
boundsSize.height);
: 방법 viewWillAppear에서 PhotoViewController의 구현에서
을,이 코드를 작성 boundsSize 내 그림을 확대하는 방법을 파악하는 데 도움이됩니다. 문제는 항상 0을 읽는다는 것입니다. 스토리 보드를 기준으로 볼 때 boundsSize는 320x455입니다. 분명히 나는 그것을 하드 코딩하고 싶지 않다. 그 PhotoViewController의 내 .H에서
, 나는 정의 : ViewWillAppear, 나는 이렇게하면
가@property (strong, nonatomic) IBOutlet UIImageView *imageView;
@property (strong, nonatomic) IBOutlet UIScrollView *scrollView;
이제 :
그런 다음CGRect fullScreenRect=[[UIScreen mainScreen] applicationFrame];
self.scrollView=[[UIScrollView alloc] initWithFrame:fullScreenRect];
나는 경계를 정의 할 수 있지만, 크기가 오프, 폭 320.000000, 높이 548.000000. 548의 높이는 제목 막대와 탭 막대가 하단에 포함되어 있기 때문일 수 있습니다. 나에게 맞는 경계를 올바르게 설정하는 방법은 스토리 보드에 표시된 것처럼 320x455입니다. 나는 같은 일을하는 사람들의 다른 코드 스 니펫을 살펴 봤는데 ARC가 ON이고 자동으로 관리되는 것이기 때문에 scrollView를 할당하지도 않는다. 나는이 방법을 사용하는 경우
, 그럼 내가있는 ScrollView가 초기화 결코 한 예를 보았다 아직 그들이 경계가
CGRect viewBounds = self.view.bounds;
self.scrollView=[[UIScrollView alloc] initWithFrame:viewBounds];
재미있는 피드백, 나는 처음에있는 viewDidLoad에서 코드를했고로 이동하기로 결정 viewDidLayoutSubviews에 배치 할 수 나중에 호출되는 viewWillAppear. 이제 viewDidAppear 시도, 올바른 바운드 크기를 가져 오는 중이지만 이미지를 더 이상, 모든 검정 표시되지 않습니다. –
너무 빨리 말했고, 끝에서 self.view = self.scrollView를 제거하고 해결했습니다. –
호기심에서 viewWillAppear을 사용하는 다른 구현 예제를 보았습니다. 그 이유는 무엇입니까? 경계가 그때까지 정해진 채로 시스템 타이밍이 발생했다면 될 수 있습니까? –