2013-10-28 48 views
22

私は連絡先のリストを持つuitableviewを持っています。私はマーベリックスのログイン画面のように円の枠内に各連絡先のイメージを持っていたいと思います。どのようにuitableviewCellでこれを行うための任意の提案?サークルフレーム内の画像iOS

enter image description here

+0

あなたが私の答えであなたの質問を公転している場合 –

答えて

76

私はあなたが持っていると推定あなたの画像はあなたのセルの中にあるので、同じ効果を持つためにあなたがしているのは、目に見えない境界線を使用することだけです。この効果を作るために、このコードを使用してください:あなたのUIImageViewも同じ高さと幅を持っている必要があります

cell.yourImageView.layer.cornerRadius = cell.yourImageView.frame.size.height /2; 
cell.yourImageView.layer.masksToBounds = YES; 
cell.yourImageView.layer.borderWidth = 0; 

、あなたのプロジェクトにquartzCoreフレームワークをインポートする必要が

+0

plzはそれを受け入れますストーリーボードでこれらの変更を設定することは可能ですか?コード内に唯一の解決策がありますか? –

+0

コードソリューションのみ:/ –

+0

スクロール表示(uitableviewなど)のときのパフォーマンスを考慮してください。 – ZYiOS

1

どうやら私はこの

float fw, fh; 
if (ovalWidth == 0 || ovalHeight == 0) { 
    CGContextAddRect(context, rect); 
    return; 
} 
CGContextSaveGState(context); 
CGContextTranslateCTM (context, CGRectGetMinX(rect), CGRectGetMinY(rect)); 
CGContextScaleCTM (context, ovalWidth, ovalHeight); 
fw = CGRectGetWidth (rect)/ovalWidth; 
fh = CGRectGetHeight (rect)/ovalHeight; 
CGContextMoveToPoint(context, fw, fh/2); 
CGContextAddArcToPoint(context, fw, fh, fw/2, fh, 1); 
CGContextAddArcToPoint(context, 0, fh, 0, fh/2, 1); 
CGContextAddArcToPoint(context, 0, 0, fw/2, 0, 1); 
CGContextAddArcToPoint(context, fw, 0, fw, fh/2, 1); 
CGContextClosePath(context); 
CGContextRestoreGState(context); 

のような丸みを帯びた矩形を作ることができ、その後、内部の画像を入れて、それが自動的にクリップされます。

CGContextRef context = UIGraphicsGetCurrentContext(); 
CGContextSaveGState(context); 
addRoundedRectToPath(context, self.frame, 10, 10); 
CGContextClip(context); 
[image drawInRect:self.frame]; 
CGContextRestoreGState(context);