私は少し損をしています。 UIViewのレイヤープロパティを使用して、アプリ内の複数の要素の角を丸めました。ただし、この1つのUIImageViewは単に準拠していません。何が欠けているのかわかりません。
UIImageView(previewImageと呼ばれる)は、Table View Cellに含まれています。 (セル自体とセルを作成するコントローラー内の)cornerRadiusプロパティの複数の場所を無効に設定しようとしました。
static NSString *CellIdentifier = @"MyTableViewCell";
MyTableViewCell *cell = (MyTableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:CellIdentifier owner:self options:nil];
cell = [topLevelObjects objectAtIndex:0];
cell.previewImage.layer.cornerRadius = 20; //Made it 20 to make sure it's obvious.
}
私が行方不明になっているセルのロード方法について何かありますか?
レイヤーのmasksToBounds
プロパティをYES
に設定する必要があります。
cell.previewImage.layer.masksToBounds = YES;
これは、UIImageView
コントロールがUIImage
オブジェクトを保持するための擬似サブビューを作成するためです。
これは動作するはずです
cell.previewImage.clipsToBounds = YES;
cell.previewImage.layer.cornerRadius = 20;
注目に値する
つまり、これがある場合
theImageView.contentMode = .scaleAspectFit
そして
theImageView.layer.cornerRadius = (theImageView.frame.size.height)/2
theImageView.clipsToBounds = true
または
theImageView.layer.masksToBounds = true
それ動作しません。 aspectFitコードを取り除く必要があります
//theImageView.contentMode = .scaleAspectFit
以下を設定する必要があると思います。
cell.previewImage.layer.masksToBounds = YES;
cell.previewImage.layer.opaque = NO;
Xcode Interface Builderで、ビューの[クリップサブビュー]描画属性を選択し、コードcell.previewImage.layer.cornerRadius = 20;
の角の半径を設定すると、作業がうまくいきます。
以下のコードを試してください
cell.previewImage.layer.cornerRadius = 20;
cell.previewImage.clipsToBounds = YES;
このコードを試してください:-
self.imgaviewName.clipsToBounds = true
self.imageviewName.layer.cornerRadius = 10
Swift 4.2回答:
コーナーの半径を機能させるには、画像をUIView
に追加してから、画像のmasksToBounds
プロパティをtrue
に設定する必要があります。
planeImage.layer.masksToBounds = true
planeImage.layer.cornerRadius = 20
注:20を目的のcornerRadius
に置き換えます
-(void) viewDidAppear:(BOOL)animated{
[super viewDidAppear:animated];
[self setMaskTo:viewDistance
byRoundingCorners:UIRectCornerBottomLeft | UIRectCornerBottomRight];
}
- (void)setMaskTo:(UIView*)view byRoundingCorners:(UIRectCorner)corners
{
UIBezierPath *rounded = [UIBezierPath
bezierPathWithRoundedRect:view.bounds
byRoundingCorners:corners
cornerRadii:CGSizeMake(20.0, 20.0)];
CAShapeLayer *shape = [[CAShapeLayer alloc] init];
shape.frame = self.view.bounds;
[shape setPath:rounded.CGPath];
view.layer.mask = shape;
}