2010-01-14 24 views
5

Bir IKImageView öğesine kaydırma çubukları eklemeye çalışıyorum. Temel olarak şu anda, bir görüntüyü bir görüntüye yükleyen bir programın bazı örneklerine ihtiyacım var ve pencere çok küçükse, doğru şeyleri yapan kaydırma çubuklarını ayarlar ...Amaç C örnekleri aranan

Bu örnekleri neden bulamıyorum? apple dev sitesinde?

Eklendi bilgi:

ImagekitDemo baktıktan sonra ben besbelli bir scrollview içinde IKIMageView gömmek gerekir DO görüyoruz.

şimdi Ancak

, (Ve bu yanı ImageKitDemo içinde geçerlidir) kaydırma çubukları sürece sadece bir (veya hiçbiri) gereklidir ince (ve her nasılsa o IKImageView EVET ... bir has___Scroller özellikleri yapar). Ancak, her ikisine de ihtiyaç duyulduğunda ve pencerenin boyutu görüntüden daha küçük olduğunda, BOTH kaydırma çubukları kaybolur.

Fare kaydırma işlemi hala devam ediyor.

+0

adresini [diğer soruya] benim cevaba bakınız (http://stackoverflow.com/questions/2060614). IKImageView, kaydırma çubuklarının kendisine sahip olduğunu iddia etse de –

cevap

0

Başlamak için en uygun yer Scroll View Programming Guide'dur. Temel olarak, IKImageView bir NSScrollView içine koymak gerekir. IKImageView boyutu, NSScrollView öğesinin görünen dikdörtgenini aşıyorsa, kaydırma çubukları görüntülenir.

Çeşitli yakınlaştırma ve yeniden boyutlandırma işlemleri gerçekleştirmek için aşağıdaki sample uses IKImageView numaralı yönergeler.

+0

Ayrıca, bunu yaptığımda, Görüntü çok büyük bir görüntü görünümünde ortalanır ve bu nedenle yalnızca bir kısmı görünür ... ve görüntü görünümü kaydırma görünümünden küçük olduğunda, beyaz arka planlarla sonuçlanırsınız. Sanırım imgeyi görüntünün büyüklüğünü yapmak ve arkada başka bir gri görünüme sahip olmakla normal bir şey yapabilirim ... ama bu tür bir yenilgi ikimageview'in amacının bir kısmı ... –

+0

Özür dilerim, belgelerini okudum çok çabuk. "ZoomImageToTo ..." görüntü dikdörtgenini ve dolayısıyla IKImageView'daki görünen kısmı değiştirmek için yapılır. Kaydırma çubuklarının görünür olup olmadığını kontrol eden bazı özellikler vardır. Ayrıca, aşağıdaki örnek kodlara bakabilirsiniz: http://developer.apple.com/mac/library/samplecode/IKImageViewDemo/index.html –

+0

Evet, özellikleri değiştirmeyi denedim, ancak [_imageView setHasHorizontalScroller: YES] hiçbir etkisi yoktur ([_imageView hasHorizontalScroller] doğrudan daha sonra 0 döndürür) Ve bu örnek çalıştığım şeydir. Herşeyin nasıl yapılacağını gösteriyormuş gibi görünüyor. 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

Evet, bir NSView ile çalışmak için kaydırma çubukları aldım, ama bu benim için yakınlaştırma ve döndürme ve kırpmayı yapmıyor ... IKImageView'ı almak istiyorum işte ... –

+0

üzgünüm, beyinde iphone var ve soruyu yanlış – slf