Właśnie zacząłem grać z szablonem widoku szczegółów głównych w Xcode 4.3 i próbuję zmienić kolor tła wzorca i ustawić go na gradient koloru. Oto, co starałem:iOS UITableView: przypisywanie koloru tła jako gradientu przy użyciu CAGradientLayer
Colors.m
#import "Colors.h"
@implementation Colors
+ (UIColor *) navigationMenuGradientTop
{
return [UIColor colorWithRed:213.0f/255.0f green:91.0f/255.0f blue:92.0f/255.0f alpha:1.0f];
}
+ (UIColor *) navigationMenuGradientBottom
{
return [UIColor colorWithRed:188.0f/255.0f green:0.0f/255.0f blue:1.0f/255.0f alpha:1.0f];
}
+ (CAGradientLayer *) navigationMenuGradient
{
NSArray *colors = [NSArray arrayWithObjects:(id)self.navigationMenuGradientTop, self.navigationMenuGradientBottom, nil];
CAGradientLayer *gradientLayer = [CAGradientLayer layer];
gradientLayer.colors = colors;
return gradientLayer;
}
@end
MasterViewController.m
import "Colors.h"
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];
CAGradientLayer *bgLayer = [Colors navigationMenuGradient];
bgLayer.frame = tableView.bounds;
[tableView.layer insertSublayer:bgLayer atIndex:0];
return cell;
}
Po uruchomieniu pojawia się następujący błąd w main
- Thread 1: EXC_BAD_ACCESS (code=1, address=0xxxxxxxx)
int main(int argc, char *argv[])
{
@autorelasespool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
}
I dodaliśmy do projektu również strukturę QuartzCore . Czego tu mi brakuje? i w jakim kierunku powinienem ogólnie wejść, gdy takie błędy wystąpią (ponieważ kompilacja się powiodła, aplikacja wydaje się tu rozbić)?
możliwe duplikat [pochyleniach na UIView i UILabels na iPhone] (http://stackoverflow.com/questions/422066/gradients-on-uiview-and-uilabels-on-iphone) –