- (id)initWithFrame:(CGRect)frame string:(NSString *)string
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
NSMutableDictionary *attrDic=[NSMutableDictionary dictionaryWithCapacity:0];
CTFontRef ctFont=CTFontCreateWithName((__bridge CFStringRef)@"Helvetica",21, NULL);
[attrDic setObject:(__bridge id)ctFont forKey:(NSString *) kCTFontAttributeName];
[attrDic setObject:(__bridge id)[UIColor blueColor].CGColor forKey:(NSString *)kCTForegroundColorAttributeName];
[attrDic setObject:[NSNumber numberWithInt:(int)kCTUnderlineStyleSingle] forKey:(NSString *)kCTUnderlineStyleAttributeName];
NSMutableAttributedString *linkedText=[[NSMutableAttributedString alloc]initWithString:string attributes:attrDic];
CGMutablePathRef path=CGPathCreateMutable();
CTFramesetterRef framesetter= CTFramesetterCreateWithAttributedString((__bridge CFMutableAttributedStringRef)linkedText);;
CGPathAddRect(path, NULL, self.bounds);
ctFrame=CTFramesetterCreateFrame(framesetter,CFRangeMake(0, [linkedText length]),path,NULL);
CGPathRelease(path);
//self.text=string;self.font=[UIFont fontWithName:@"Helvetica" size:21];self.textColor=[UIColor clearColor];
}
return self;
}
- (void)drawRect:(CGRect)rect
{
CGContextRef context;
context=UIGraphicsGetCurrentContext();
CGContextSaveGState(context);
CGContextTranslateCTM(context, 0, CGRectGetHeight(self.bounds));
CGContextScaleCTM(context, 1.0f, -1.0f);
CTFrameDraw(ctFrame, context);
CGContextRestoreGState(context);
}
UITextViewのサブクラスである必要はなさそうやけど一応。contentSize.height取るために透明色でtextセットしてみたけど、core textのものとは微妙に文字幅、行間が異なるみたいでなんかずれる。ちょっと調べる。
週末は麺や天啓でつけ麺。つけ麺自体はそこそこやけど、〆にスープ割りだけじゃなくて雑炊も選べて、これが実に美味い。今月まだ6杯目。ペースが遅い。
0 件のコメント:
コメントを投稿