2016-07-04 12 views
0

uiimageviewの上隅を丸くしたいのですが、CASharpeLayerが描画された画像が消えると、この問題の原因をわかりません。willDisplayCellのコードの下に置きます。セルは、画像を再利用したときCAShapeLayerの結果、UIImageViewに画像が表示されない

UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:cell.imgProduct.bounds byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight cornerRadii:CGSizeMake(3.0,3.0)]; 

CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init]; 
maskLayer.frame = cell.imgProduct.bounds; 
maskLayer.path = maskPath.CGPath; 
cell.imgProduct.layer.mask = maskLayer; 
cell.imgProduct.layer.masksToBounds=NO; 
+0

なぜドンこのコードをセルのサブクラスの 'layoutSubView'に入れませんか? – Proton

+0

layoutSubViewでも同じ問題があります –

+0

私はxcode 8.0 betaを使用していますが、それはそれに問題がありますか? –

答えて

0

は私が...自分でこれを解決してきた描画された層で適切に表示されます:P私は私のUICollectionViewCellサブクラスののdrawRectメソッドでマスクを描いた

- (void)drawRect:(CGRect)rect { 

    UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:self.imgProduct.bounds byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight cornerRadii:CGSizeMake(3.0, 3.0)]; 
    CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init]; 
    maskLayer.frame = self.imgProduct.bounds; 
    maskLayer.path = maskPath.CGPath; 
    _imgProduct.layer.mask = maskLayer; 
    _imgProduct.layer.masksToBounds=YES; 

} 
関連する問題