//

ruimte tussen page control

ruimte tussen page control discussie in Ontwikkelen voor iOS forum; ( verdwijnt na registratie ) Hee, Ik maak voor mijn app een foto galerie die net ongeveer net zo werkt als de foto's app van Apple zelf. Het werkt goed, ...



Ga terug   iPhone, iPod touch, iPad en Apple TV forum > Development > Ontwikkelen voor iOS
Wachtwoord vergeten? Registreren!
Registreer FAQ Ledenlijst Kalender Zoeken Berichten van vandaag Markeer forums als gelezen
  #1  
Oud 16-03-11, 17:10
Jeroen0704 Jeroen0704 is offline
• iOS 5.0.1
• 5.0.1
• Besturingssysteem: Mac OS X
 
Geregistreerd: Jun 2009
Berichten: 137
Standaard ruimte tussen page control

Hee,

Ik maak voor mijn app een foto galerie die net ongeveer net zo werkt als de foto's app van Apple zelf. Het werkt goed, behalve dat ik graag een kleine zwarte ruimte van zo'n 20 pixels tussen de foto's zou willen net zoals in de foto's app van Apple zelf. Ik heb al geprobeerd mijn code aan te passen, maar met niet zo veel succes

Dit is mijn code:

Code:
- (void)setupPage
{
    
	scrollView.delegate = self;
	
	[self.scrollView setBackgroundColor:[UIColor clearColor]];
	[scrollView setCanCancelContentTouches:NO];
	
	scrollView.indicatorStyle = UIScrollViewIndicatorStyleWhite;
	scrollView.clipsToBounds = YES;
	scrollView.scrollEnabled = YES;
	scrollView.pagingEnabled = YES;
	
	NSUInteger nimages = 0;
	CGFloat cx = 0;
	for (; ; nimages++) {
		NSString *imageName = [NSString stringWithFormat:@"foto%d.png", (nimages + 1)];
		UIImage *image = [UIImage imageNamed:imageName];
		if (image == nil) {
			break;
		}
		UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
		
		CGRect rect = imageView.frame;
		rect.size.height = image.size.height;
		rect.size.width = image.size.width;
        rect.origin.x = ((scrollView.frame.size.width - image.size.width) / 2) + cx;
 
		rect.origin.y = ((scrollView.frame.size.height - image.size.height) / 2);
		
		imageView.frame = rect;
		
		[scrollView addSubview:imageView];
		[imageView release];

		cx += scrollView.frame.size.width;
	}
	
	self.pageControl.numberOfPages = nimages;
	[scrollView setContentSize:CGSizeMake(cx, [scrollView bounds].size.height)];
}
Code:
- (void)scrollViewDidScroll:(UIScrollView *)_scrollView
{

    if (pageControlIsChangingPage) {
        return;
    }
            
    CGFloat pageWidth = _scrollView.frame.size.width ;
    int page = floor((_scrollView.contentOffset.x - pageWidth / 2) / pageWidth) + 1;
    pageControl.currentPage = page;
}
Code:
- (void)scrollViewDidEndDecelerating:(UIScrollView *)_scrollView 
{
    pageControlIsChangingPage = NO;
}
Code:
- (IBAction)changePage:(id)sender 
{
    
    CGRect frame = scrollView.frame;
    frame.origin.x = frame.size.width * pageControl.currentPage;
    frame.origin.y = 0;
	
    [scrollView scrollRectToVisible:frame animated:YES];
	
    pageControlIsChangingPage = YES;
}
Advertentie
Advertentie Gesponsorde links (verdwijnt na registratie)

  #2  
Oud 16-03-11, 21:58
iMidas iMidas is offline
• iOS 5.0 Beta
• 5.0 Beta
• Besturingssysteem: Mac OS X
 
Geregistreerd: Jan 2011
Locatie: Heemstede
Berichten: 63
Standaard

Apple heeft net de Broncode van iOS 4.1 open gezet misschien kun je het daar in vinden?
  #3  
Oud 16-03-11, 22:29
Jeroen0704 Jeroen0704 is offline
• iOS 5.0.1
• 5.0.1
• Besturingssysteem: Mac OS X
 
Geregistreerd: Jun 2009
Berichten: 137
Standaard

Heb je een link, want ik kan het niet vinden op het developer center en heb een paid developer account.
  #4  
Oud 17-03-11, 00:49
Geno's schermafbeelding
Geno Geno is offline
• iOS 9.0 beta
• 8.4
• Besturingssysteem: Mac OS X
 
Geregistreerd: Nov 2009
Berichten: 251
Standaard

Je kan in die delegate methods van UIScrollView een contentOffset meegegeven aan je scrollView.frame. Tijdens het scrollen wordt er dan extra ruimte gecreëerd.

Of je kan een UIView aanmaken, die zwart is (en groter is dan je imageView) en dan imageView als subview plaatsen. Je kan dan bounds terug vragen van de imageView om de size te krijgen en dan +20 pixels. Maar lijkt me niet de beste oplossing.
__________________
iPod touch v3 - iPod Nano 2011 - iMac 27" - iPhone 4S - iPad 2 - MacBook Air 11,6"
  #5  
Oud 09-04-11, 21:41
Geno's schermafbeelding
Geno Geno is offline
• iOS 9.0 beta
• 8.4
• Besturingssysteem: Mac OS X
 
Geregistreerd: Nov 2009
Berichten: 251
Standaard

Ik wil mezelf even verbeteren hier, gezien ik zelf ook hier mee bezig ben geweest.

Om ruimte van 20 pixels tussen de foto's te krijgen doe je het volgende:

Code:
// Je wil eerst de grootte van het scherm weten
CGRect extraFrame = [[UIScreen mainScreen] bounds];
// Je laat de origin van het frame 10 points naar links beginnen
extraFrame.origin.x -= 10;
// Je voegt 20 points toe in de totale breedte van het frame
extraFrame.size.width += 20;
// Daarna gebruik je een initializer om de frame grootte toe te voegen aan je UIScrollview
scrollView = [[UIScrollView alloc] initWithFrame:extraFrame];
  #6  
Oud 11-04-11, 16:42
Jeroen0704 Jeroen0704 is offline
• iOS 5.0.1
• 5.0.1
• Besturingssysteem: Mac OS X
 
Geregistreerd: Jun 2009
Berichten: 137
Standaard

Bedankt voor je reactie, ga het morgen meteen toepassen!
Reageren



Er zijn 1 actieve gebruikers die momenteel deze discussie bekijken (0 leden en 1 gasten)

 
Discussietools
Weergave

Soortgelijke discussies

Discussie Auteur Forum Reacties Laatste bericht
Springjumps page icoontjes Kenzo2010 Jailbreak apps en thema's 5 12-08-12 22:50
Lege details page vicz Jailbreak apps en thema's 2 27-05-10 19:50
ruimte tussen metalen rand zwarte 3G MsG iPhone algemeen 4 30-06-09 19:22
ruimte tussen iconen mcbbvb Archief 2 01-06-09 17:18

Regels voor berichten
Je mag geen nieuwe discussies starten
Je mag niet reageren op berichten
Je mag geen bijlagen versturen
Je mag niet je berichten bewerken

BB code is Aan
Smileys zijn Aan
[IMG]-code is Aan
HTML-code is Uit
Trackbacks are Aan
Pingbacks are Aan
Refbacks are Uit



Alle tijden zijn GMT +2. Het is nu 01:20.