iCulture forum | iPhone, iPad,  iPod touch, Apple TV en iOS

iCulture forum | iPhone, iPad, iPod touch, Apple TV en iOS (https://forum.iculture.nl/)
-   Ontwikkelen voor iOS (https://forum.iculture.nl/f133/development/f58/ontwikkelen-voor-ios/)
-   -   Customs iOS4 vs. iOS5 (https://forum.iculture.nl/f133/development/f58/ontwikkelen-voor-ios/105422-customs-ios4-vs-ios5.html)

gobelz 28-11-11 13:23

Customs iOS4 vs. iOS5
 
Beste ontwikkelaars,

Mijn vraag/opmerking/probleem/advies gaat over de custom aanpassingen aan een app/project.

Met iOS4 heb ik gebruik gemaakt van een custom NavigationBar, zoals hieronder in code:
Code:

@implementation UINavigationBar (CustomImage)
- (void)drawRect:(CGRect)rect {
    UIImage *image = [UIImage imageNamed: @"NavigationBar.png"];
    [image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
}
@end

Met iOS5 kan ik gebruik maken van het volgende:
Code:

if ([self.navigationController.navigationBar respondsToSelector:@selector( setBackgroundImage:forBarMetrics:)]){
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"NavigationBar.png"] forBarMetrics:UIBarMetricsDefault];
}

Kan dit? Lukt dit?

Iemand andere tips?

Groet,

TUX2K 28-11-11 20:02

Wat heb je geprobeerd? Werkte dat?

gobelz 29-11-11 16:11

Citaat:

Oorspronkelijk geplaatst door TUX2K (Bericht 740852)
Wat heb je geprobeerd? Werkte dat?

Ik heb in mijn project beide onderdelen toegevoegd. Voor iOS4 voor de implementatie van mijn .m... en voor iOS5 toegevoegd aan mijn viewDidLoad...

Het lijkt er op dat ie dit beide niet accepteerd, dus wanneer ik dit test voor beide versies lijkt het alleen te werken voor de iOS5 en niet voor de iOS4 terwijl beide in mijn project is opgenomen.

Hebben meer ontwikkelaars hier last van? Een mogelijke oplossing?

Alvast bedankt!

TUX2K 29-11-11 16:26

Ik heb dit dus ook gedaan in mijn project.
Voor iOS4 gebruik ik een catageory op UINavigationBar

Code:

#import <UIKit/UIKit.h>

@interface UINavigationBar (BackGroundImage)

@end


Code:

#import "UINavigationBar+BackGroundImage.h"

@implementation UINavigationBar (BackGroundImage)


- (void) drawRect:(CGRect)rect {
        UIImage *backgroundImage = [UIImage imageNamed:@"titlebar.png"];
        [backgroundImage drawInRect:rect];
}

@end

En de volgende bij het aanmaken van de UINavigationController.
Waarbij self hier een extensie is van UINavigationController
Code:

               
// iOS 5 UINavigationBar backgroundImage
If ([self.navigationBar respondsToSelector:@selector(setBackgroundImage:forBarMetrics:)]) {
        UIImage *backgroundImage = [UIImage imageNamed:@"titlebar.png"];
        [self.navigationBar setBackgroundImage:backgroundImage forBarMetrics:UIBarMetricsDefault];
}


gobelz 30-11-11 08:57

Werkt het onderstaande voor beide iOS? Dat wordt vanavond uitproberen :) dank je wel


Citaat:

Oorspronkelijk geplaatst door TUX2K (Bericht 741173)
Ik heb dit dus ook gedaan in mijn project.
Voor iOS4 gebruik ik een catageory op UINavigationBar

Code:

#import <UIKit/UIKit.h>
 
@interface UINavigationBar (BackGroundImage)
 
@end


Code:

#import "UINavigationBar+BackGroundImage.h"
 
@implementation UINavigationBar (BackGroundImage)
 
 
- (void) drawRect:(CGRect)rect {
    UIImage *backgroundImage = [UIImage imageNamed:@"titlebar.png"];
    [backgroundImage drawInRect:rect];
}
 
@end

En de volgende bij het aanmaken van de UINavigationController.
Waarbij self hier een extensie is van UINavigationController
Code:

       
// iOS 5 UINavigationBar backgroundImage
If ([self.navigationBar respondsToSelector:@selector(setBackgroundImage:forBarMetrics:)]) {
    UIImage *backgroundImage = [UIImage imageNamed:@"titlebar.png"];
    [self.navigationBar setBackgroundImage:backgroundImage forBarMetrics:UIBarMetricsDefault];
}



TUX2K 30-11-11 09:04

Ja de drawrect wordt for iOS 5 genegeerd, dus die werk op iOS 4.
En die andere werk op iOS 5.

gobelz 30-11-11 11:44

Super, bedankt voor het reageren!

Citaat:

Oorspronkelijk geplaatst door TUX2K (Bericht 741358)
Ja de drawrect wordt for iOS 5 genegeerd, dus die werk op iOS 4.
En die andere werk op iOS 5.



Alle tijden zijn GMT +2. Het is nu 13:56.