我在ViewDidLoad中编写了以下代码
// Implement viewDidLoad to do additional setup after loading the view,typically from a nib. -(void)viewDidLoad { [super viewDidLoad]; Nsstring *str = [Nsstring stringWithFormat:@"Veer"]; CGColorSpaceRef rgbColorspace = CGColorSpaceCreateDeviceRGB(); CGFloat values[4] = {55.0,0.0,1.0}; CGColorRef glowColor = CGColorCreate(rgbColorspace,values); CGContextRef context = UIGraphicsGetCurrentContext(); CGContextSetShadowWithColor( context,CGSizeMake( 5.0,0.0 ),20.0f,glowColor); [str drawAtPoint:CGPointMake(10.5f,0.5f) withFont:[UIFont fontWithName:@"Helvetica" size:100.0f]]; UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(60,200,250,100)]; [label setBackgroundColor:[UIColor clearColor]]; label.font=[UIFont fontWithName:@"DBLCDTempBlack" size:50.0]; label.textColor = [UIColor colorWithRed:0.0 green:1.0 blue:0.0 alpha:1.0]; [label setText:str]; [self.view addSubview:label]; }
在Console中我看到了
Testing Clock[3286] <Error>: CGContextSetStyle: invalid context 0x0 Testing Clock[3286] <Error>: CGContextSetFont: invalid context 0x0 Testing Clock[3286] <Error>: CGContextSetTextMatrix: invalid context 0x0 Testing Clock[3286] <Error>: CGContextSetFontSize: invalid context 0x0 Testing Clock[3286] <Error>: CGContextSetTextPosition: invalid context 0x0 Testing Clock[3286] <Error>: CGContextShowGlyphsWithAdvances: invalid context 0x0
解决方法
您应该将该自定义绘图代码移出viewDidLoad并将其移动到drawRect.
如果要实现自己的drawRect方法,还需要对视图进行子类化.
查看此示例:http://ykyuen.wordpress.com/2010/08/27/iphone-uiview-with-border/
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。