2010-01-14 3 views
5

Я пытаюсь добавить полосы прокрутки в IKImageView. В принципе на данный момент мне нужны некоторые примеры программы, которая загружает изображение в представление, а если окно слишком малое, настраивает полосы прокрутки, которые делают правильные вещи ...Заданные цели C примеры

Почему я не могу найти эти примеры на сайте Apple Dev?

Добавлена ​​информация:

После просмотра ImagekitDemo я вижу, что, очевидно, мне нужно вставлять IKIMageView в ScrollView. (и как-то это делает свойства has___Scroller для IKImageView YES ...)

Однако, теперь (И это верно и в ImageKitDemo). Полосы прокрутки в порядке, если требуется только один (или ни один). Однако, как только оба необходимы, и размер окна меньше изображения, BOTH полосы прокрутки исчезают.

Прокрутка мыши по-прежнему работает.

+0

Пожалуйста, смотрите мой ответ на ваш вопрос [другой] (http://stackoverflow.com/questions/2060614). –

ответ

0

Лучшее место для начала - Scroll View Programming Guide. В принципе, вам нужно поместить IKImageView внутри NSScrollView. Если размер IKImageView превышает видимый прямоугольник NSScrollView, появятся полосы прокрутки.

Следующие sample uses IKImageView для выполнения различных операций масштабирования и изменения размера.

+0

, хотя IKImageView утверждает, что имеет полосу прокрутки? Кроме того, когда я это делаю, изображение становится центрированным в огромном представлении изображения, и поэтому только часть его видна ... и когда образное изображение меньше, чем прокрутка, вы оказываетесь на белом фоне. Я полагаю, что я МОГУ сделать обычную вещь, сделав образное изображение размером с изображение, а за ним еще один серый вид ... но такого рода поражения некоторые из целей ikimageview ... –

+0

Мои извинения, я прочитал документацию слишком быстро. «ZoomImageTo ...» сделаны для изменения прямоугольника изображения и, следовательно, видимой части в IKImageView. Есть некоторые свойства, которые контролируют, являются ли полосы прокрутки видимыми или нет. Кроме того, вы можете посмотреть следующий пример кода: http://developer.apple.com/mac/library/samplecode/IKImageViewDemo/index.html –

+0

Да, я попытался изменить свойства, но [_imageView setHasHorizontalScroller: YES] не имеет эффекта ([_imageView hasHorizontalScroller] возвращает 0 непосредственно после этого) И этот пример - это то, над чем я работал. Кажется, он показывает, как делать все, НО полосы прокрутки 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

Да, у меня есть полосы прокрутки для работы с NSView, но это не делает масштабирование, поворот и обрезку для меня ... Я хотел бы получить IKImageView работа ... –

+0

извините, у меня есть iphone на мозге и неправильно прочитал вопрос – slf

Смежные вопросы