Я боролся с этим с iOS 7 alpha. Сначала я думал, что это ошибка в альфа, но это все еще происходит, поэтому я делаю что-то неправильно.CoreGraphics не работает на симуляторе iOS 7.0
Во всем приложении я рисую такие вещи, как фонов клеток, и таких, как CG, но в iOS 7 он не отображается.
В качестве примера:
@interface NewManagerCell : UITableViewCell
@end
@implementation NewManagerCell
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
//some initialization code here
}
return self;
}
- (void)drawRect:(CGRect)rect {
CGContextRef context = UIGraphicsGetCurrentContext();
CGRect bounds = self.bounds;
bounds.origin.y += 5; //inter-cell spacing
bounds.size.height -= 5;
CGFloat mx = CGRectGetMinX(bounds);
CGFloat Mx = CGRectGetMaxX(bounds);
CGFloat my = CGRectGetMinY(bounds);
CGFloat cy = CGRectGetMinY(bounds)+CGRectGetHeight(bounds)*.375;
CGFloat My = CGRectGetMaxY(bounds);
CGContextBeginPath(context);
CGContextMoveToPoint(context, mx, cy);
CGContextAddLineToPoint(context, mx+cy-my, my);
CGContextAddLineToPoint(context, Mx-cy+my, my);
CGContextAddLineToPoint(context, Mx, cy);
CGContextAddLineToPoint(context, Mx, My);
CGContextAddLineToPoint(context, mx, My);
CGContextAddLineToPoint(context, mx, cy);
CGContextSetFillColorWithColor(context, [[UIColor colorWithPatternImage:[UIImage imageNamed:@"cell-pattern"]] CGColor]);
CGContextFillPath(context);
mx += 4+CGRectGetWidth(bounds)/4-CGRectGetHeight(bounds)*.375/16;
Mx -= 4;
my += 4;
My -= 4;
cy += 2;
CGMutablePathRef path = CGPathCreateMutable();
CGContextBeginPath(context);
CGPathMoveToPoint(path, &CGAffineTransformIdentity, mx, my);
CGPathAddLineToPoint(path, &CGAffineTransformIdentity, Mx-(cy-my), my);
CGPathAddLineToPoint(path, &CGAffineTransformIdentity, Mx, cy);
CGPathAddLineToPoint(path, &CGAffineTransformIdentity, Mx, My);
CGPathAddLineToPoint(path, &CGAffineTransformIdentity, mx, My);
CGPathAddLineToPoint(path, &CGAffineTransformIdentity, mx, my);
CGContextAddPath(context, path);
CGContextSetRGBFillColor(context, 1, 1, 1, 1);
CGContextFillPath(context);
CGContextAddPath(context, path);
CGContextSetRGBStrokeColor(context, .69, .69, .69, 1);
CGContextStrokePath(context);
CGPathRelease(path);
}
@end
Это работало в любой вкус прошивкой до 7 и теперь перестал работать. Кто-нибудь знает, что происходит?
Возможный дубликат [подкласса UITableViewCell - backgroundView закрывает все, что я делаю в drawRect] (http://stackoverflow.com/questions/3527925/subclassed-uitableviewcell-backgroundview-covers-up-anything-i-do-in- drawrect) – StilesCrisis