2012年4月22日日曜日

UILabel

松江に出張行ってきた。人生初島根。向こうではisemiya527でもやしラーメン、戻ってきてから鶴橋ののぼり屋で味付玉子入りラーメン。どちらもまずまず。
で、帰ってきてからblog_nameとcaptionの表示部分をちょこちょこ書いてみた。UILabel使ってこんな感じで。

UILabel *bname=[[UILabel alloc]init]; //blog_name
bname.text=[bnameArr objectAtIndex:i];bname.font=[UIFont fontWithName:@"Helvetica" size:10];
bname.textColor=[UIColor blackColor];bname.backgroundColor=[UIColor whiteColor];bname.alpha=0.5;
CGFloat bwidth=[bname.text sizeWithFont:bname.font constrainedToSize:CGSizeMake(sw,10) lineBreakMode:UILineBreakModeTailTruncation].width;
bname.frame=CGRectMake(0,0,bwidth,10);
[postv addSubview:bname];
if([capArr objectAtIndex:i]){ //caption
 NSString *capText=[capArr objectAtIndex:i];NSRange r;
 while ((r=[capText rangeOfString:@"<[^>]+>" options:NSRegularExpressionSearch]).location!=NSNotFound)
 capText=[[capText stringByReplacingCharactersInRange:r withString:@""] stringByReplacingOccurrencesOfString:@"\n" withString:@""];
 UILabel *caption=[[UILabel alloc]init];
 caption.numberOfLines=0;
 caption.text=capText;caption.font=[UIFont fontWithName:@"Helvetica" size:10];
 caption.textColor=[UIColor blackColor];caption.backgroundColor=[UIColor whiteColor];caption.alpha=0.5;
 CGSize csize=[caption.text sizeWithFont:caption.font constrainedToSize:CGSizeMake(sw, 30) lineBreakMode:UILineBreakModeTailTruncation];
 caption.frame=CGRectMake(0,sh-csize.height,csize.width,csize.height);
 [postv addSubview:caption];
}

できた。
でもなんか無駄が多い気がする。もうちょいエレガントに書けんもんか。

0 件のコメント:

コメントを投稿