2016-07-04 5 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 베타를 사용하고 있습니다. 문제가 있습니까? –

답변

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; 

}