UIScrollView에서 이미지 확대/축소를 지원하려면 다음과 같이 MyController를 UIScrollViewDelegate와 일치시켜야한다고 생각했습니다. 컴파일러가 다음 경고 메시지를 생성하더라도 UIScrollViewDelegate를 준수하지 않으면 정상적으로 작동합니다.
경고 : 클래스 'MyController에'는 'UIScrollViewDelegate'프로토콜
는 헤더 파일에 UIScrollViewDelegate을 준수 할 의무가 없습니다를 구현하지 않습니다?
준수하지 않은 경우 부작용이 있습니까? 이와왜 UIScrollViewDelegate를 준수하지 않고 UIScrollView를 확대/축소 할 수 있습니까?
[scrollView setDelegate:self];
:
//@interface MyController : UIViewController <UIScrollViewDelegate>
@interface MyController : UIViewController
{
UIScrollView *scrollView;
UIImageView *imageView;
}
@end
@implementation HelloController
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
return imageView;
}
- (void)loadView
{
UIImage *img = [UIImage imageNamed:@"foo.png"];
imageView = [[UIImageView alloc] initWithImage:img];
imageView.userInteractionEnabled = NO;
scrollView = [[UIScrollView alloc] initWithFrame: [[UIScreen mainScreen] applicationFrame]];
[scrollView setScrollEnabled:YES];
[scrollView setContentSize:[imageView size]];
[scrollView setMaximumZoomScale:2.0f];
[scrollView setMinimumZoomScale:0.5f];
[scrollView setDelegate:self];
[scrollView addSubview:imageView];
self.view = scrollView;
[scrollView release];
}
@end
답장을 보내 주셔서 감사합니다. 그건 나에게 의미가있다. 그러나 Interface Builder를 통해 델리게이트를 할당하면 Interface Builder가 전혀 불평하지 않습니다. 재미있는 행동입니다. 어쨌든, 다시 한번 감사드립니다! – tomute