2010-01-14 41 views
5

Tôi đang cố gắng thêm thanh cuộn vào một IKImageView. Về cơ bản tại thời điểm này, tôi cần một số ví dụ về chương trình tải hình ảnh vào chế độ xem và nếu cửa sổ quá nhỏ, hãy thiết lập thanh cuộn làm đúng ...Ví dụ về mục tiêu C tìm kiếm

Tại sao tôi không thể tìm thấy các ví dụ này trên trang web dev của apple?

thông tin Added:

Sau khi xem xét ImagekitDemo Tôi thấy rằng rõ ràng là tôi cần phải nhúng các IKIMageView trong một scrollview. (và bằng cách nào đó làm cho các thuộc tính has___Scroller của IKImageView YES ...)

Tuy nhiên, bây giờ (Và điều này cũng đúng trong ImageKitDemo) Các thanh cuộn chỉ cần một (hoặc không) là cần thiết. Tuy nhiên, ngay khi cả hai đều cần thiết, và kích thước của cửa sổ nhỏ hơn hình ảnh, thì cả hai thanh cuộn biến mất.

Di chuyển chuột vẫn hoạt động.

+0

hãy xem câu trả lời của tôi trong [câu hỏi khác] của bạn (http://stackoverflow.com/questions/2060614). –

Trả lời

0

Nơi tốt nhất để bắt đầu là Scroll View Programming Guide. Về cơ bản, bạn cần phải đặt IKImageView bên trong một NSScrollView. Nếu kích thước IKImageView vượt quá hình chữ nhật có thể nhìn thấy của NSScrollView, thì thanh cuộn sẽ xuất hiện.

Sau sample uses IKImageView để thực hiện các thao tác thu phóng và thay đổi kích thước khác nhau.

+0

mặc dù IKImageView tuyên bố rằng có thanh cuộn chính nó? Ngoài ra, khi tôi làm điều đó, Hình ảnh được căn giữa trong các lần xem hình ảnh khổng lồ và do đó chỉ một phần của nó được hiển thị ... và khi số lần xem nhỏ hơn khung cuộn, bạn kết thúc với nền màu trắng. Tôi cho rằng tôi có thể làm một điều bình thường với việc làm cho trí tưởng tượng kích thước của hình ảnh và có một cái nhìn màu xám phía sau nó ... nhưng đó là loại thất bại một số mục đích của ikimageview ... –

+0

Lời xin lỗi của tôi, tôi đọc tài liệu quá nhanh. Các "zoomImageTo ..." được thực hiện để thay đổi hình chữ nhật hình ảnh, và do đó phần nhìn thấy được trong IKImageView. Có một số thuộc tính kiểm soát xem thanh cuộn có hiển thị hay không. Hơn nữa, bạn có thể xem mã mẫu sau: http://developer.apple.com/mac/library/samplecode/IKImageViewDemo/index.html –

+0

vâng, tôi đã thử thay đổi các thuộc tính, nhưng [_imageView setHasHorizontalScroller: YES] không có hiệu lực ([_imageView hasHorizontalScroller] trả về 0 ngay sau đó) Và ví dụ đó là những gì tôi đã làm việc. Có vẻ như để chỉ cách làm mọi thứ BUT Scrollbars B-) –

0

ZoomViewController.h

@interface ZoomViewController : UIViewController <UIScrollViewDelegate> 
{ 
    ForecastImage* detailImage; // wrapper class around UIImage (optional - could just be UIImage) 

    IBOutlet UIImageView* imageView; 
    IBOutlet DoubleTapScrollView* zoomableScrollView; 
} 

@property (readwrite, nonatomic, retain) ForecastImage* detailImage; 

- (IBAction) dismissZoomViewController; 

- (UIView *) viewForZoomingInScrollView:(UIScrollView *)scrollView; 

- (void) scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(float)scale; 

@end 

ZoomViewController.m

@implementation ZoomViewController 

@synthesize detailImage; 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
} 

- (void)viewWillAppear:(BOOL)animated 
{ 
    [imageView setImage:[self.detailImage renderedImage]]; 

    [zoomableScrollView setContentSize:[[imageView image] size]]; 
    [zoomableScrollView setMaximumZoomScale:5.0]; 
    [zoomableScrollView setMinimumZoomScale:0.25]; 
} 

- (void) viewDidAppear:(BOOL)animated 
{ 
    self.navigationItem.title = [SearchService getDisplayName:[self.detailImage forecastArea]]; 
} 

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    return (interfaceOrientation == UIInterfaceOrientationPortrait); 
} 


- (void)didReceiveMemoryWarning 
{ 
    [super didReceiveMemoryWarning]; // Releases the view if it doesn't have a superview 
    // Release anything that's not essential, such as cached data 
} 


- (void)dealloc 
{ 
    imageView.image = nil; 
    self.detailImage = nil; 

    [super dealloc]; 
} 

- (IBAction) dismissZoomViewController 
{ 
    [self dismissModalViewControllerAnimated:YES]; 
} 

#pragma mark Pinch-n-Zoom 

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView 
{ 
    return imageView; 
} 

- (void) scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(float)scale 
{ 
    CGSize newSize = CGSizeMake(imageView.image.size.width * scale, imageView.image.size.height * scale); 
    [scrollView setContentSize:newSize]; 
} 

@end 
+0

Vâng, tôi đã nhận được thanh cuộn để làm việc với NSView, nhưng điều đó không làm phóng to và xoay và cắt xén cho tôi ... Tôi muốn nhận IKImageView làm việc ... –

+0

xin lỗi, tôi có iphone trên não và đọc sai câu hỏi – slf

Các vấn đề liên quan