Zorg schreef op vrijdag 14 november 2008 @ 13:24:
Het lijkt mij heel erg leuk om op deze manier wat te gaan prutsen met het zelf maken van een applicatie. Nadeel is dat mijn powerbook kort geleden helaas gestolen is

Ik snap dat het niet werkt op een windows pc

maar kan het wel op een powerbook 12 inch g4 (dus de oudere types?)
Nee, dat gaat niet werken. Je hebt een Intel Mac nodig met Mac OS X Leopard. De eerste beta versie van de SDK heb ik op mijn PowerPC kunnen installeren, en met beta 7 moet het ook nog lukken, maar de final gaat niet volgens mij. Kijk anders een naar de link in de startpost van dit topic.
Nu ik zo'n 3 weken m'n MacBook Pro ben ik dus ook eens begonnen met de SDK. Wat ervaring met Desktop development (welja, ervaring, door enkele projecten half af te maken heb ik kennis gemaakt met de taal en de mogelijkheden) maar de iPhone SDK is toch redelijk anders. Ik moet de mogelijkheden nog leren kennen en heb nog geen weet over hoe ik iets het beste kan implementeren.
Ik ben gisteren begonnen met een applicatie welke
de teletekstpagina van school kan parsen en de info wat mooier weer kan geven, en vooral op kan slaan (geen 3G internet op iPod touch). Zoals te zien in onderstaande afbeelding heb ik dus gebruik gemaakt van standaard navigatie controllers en toolbars, de extra info onder de navigation controller is een subclass van UIView met de gradient geprint met Core Graphics.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
| - (void)drawRect:(CGRect)rect {
CGColorSpaceRef space = CGColorSpaceCreateDeviceRGB();
CGContextRef context = UIGraphicsGetCurrentContext();
// Create the first color
CGFloat firstColorComponents[4] = {192.0/255.0, 201.0/255.0, 207.0/255.0, 1.0};
CGColorRef firstColor = CGColorCreate(space, firstColorComponents);
// Create the second color
CGFloat secondColorComponents[4] = {172.0/255.0, 184.0/255.0, 192.0/255.0, 1.0};
CGColorRef secondColor = CGColorCreate(space, secondColorComponents);
// Create the line color
CGFloat lineColorComponents[4] = {129.0/255.0, 146.0/255.0, 159.0/255.0, 1.0};
CGColorRef lineColor = CGColorCreate(space, lineColorComponents);
CGFloat firstColorLocation = 0.0;
CGFloat secondColorLocation = (self.bounds.size.height - 1.0) / self.bounds.size.height;
CGFloat lineColorLocation = 1.0;
NSArray *colors = [NSArray arrayWithObjects:(id)firstColor, (id)secondColor, (id)lineColor, nil];
CGFloat colorLocations[3] = {firstColorLocation, secondColorLocation, lineColorLocation};
CGGradientRef gradient = CGGradientCreateWithColors(space, (CFArrayRef)colors, colorLocations);
// Draw the gradient
CGContextDrawLinearGradient(context, gradient, CGPointZero, CGPointMake(0.0, self.bounds.size.height), 0);
CGColorSpaceRelease(space);
CGColorRelease(firstColor);
CGColorRelease(secondColor);
CGColorRelease(lineColor);
} |
Is hier nog een betere, makkelijkere manier voor? Een framework van Apple of iets dergelijks?
Edit: Mja, er is een snellere manier die ik vanavond tegenkwam. Begin al wat inzicht te krijgen in Quartz.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| - (void)drawRect:(CGRect)rect {
CGColorSpaceRef space = CGColorSpaceCreateDeviceRGB();
CGContextRef context = UIGraphicsGetCurrentContext();
CGFloat colors[12] = {
192.0/255.0, 201.0/255.0, 207.0/255.0, 1.0,
172.0/255.0, 184.0/255.0, 192.0/255.0, 1.0,
129.0/255.0, 146.0/255.0, 159.0/255.0, 1.0
};
CGFloat locations[3] = {0.0, (self.bounds.size.height - 1.0) / self.bounds.size.height, 1.0};
CGGradientRef gradient = CGGradientCreateWithColorComponents(space, colors, locations, 3);
// Draw the gradient
CGContextDrawLinearGradient(context, gradient, CGPointZero, CGPointMake(0.0, self.bounds.size.height), 0);
CGColorSpaceRelease(space);
} |
[
Voor 11% gewijzigd door
Joost_K op 25-11-2008 00:04
]