Saya sedikit bingung. Saya telah menggunakan properti layer dari UIView untuk membulatkan sudut-sudut beberapa elemen di aplikasi saya. Namun, UIImageView yang satu ini tidak sesuai. Tidak yakin apa yang saya lewatkan.
UIImageView (disebut previewImage) terkandung dalam Table View Cell. Saya sudah mencoba mengatur beberapa lokasi cornerRadius properti (dalam sel itu sendiri dan di controller yang membuat sel) tidak berhasil.
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.
}
Apakah ada sesuatu tentang cara sel dimuat sehingga saya tidak ada?
iphone
ios
uiimageview
rounded-corners
MarkPowell
sumber
sumber
shouldRasterize = false
?Juga patut dicatat
yaitu jika Anda memiliki ini
dan
atau
Itu tidak akan berhasil . Anda harus menyingkirkan kode aspekFit
sumber
Ini seharusnya bekerja
sumber
clipsToBounds
adalah metode di kelas selanjutnya. PercayalahmasksToBounds
seperti di atas.Saya yakin Anda perlu mengatur:
sumber
Di Xcode Interface Builder, memilih atribut Menggambar 'Subviews Klip' untuk tampilan bersama-sama dengan mengatur radius sudut dalam kode
cell.previewImage.layer.cornerRadius = 20;
melakukan pekerjaan untuk saya!Lihat opsi 'Klip Subview' di IB
sumber
Cobalah potongan kode di bawah ini
sumber
Coba kode ini: -
sumber
Untuk
imageView.contentMode = .scaleAspectFill
yangcornerRadius
tidak diterapkan jika gambar sangat besar, tergantung pada perangkat keras.Beberapa tes dengan gambar panorama yang diubah ukurannya:
Dimensi imageView di mana 160x100. Menariknya, perangkat keras yang lebih baru belum tentu lebih mampu.
Jangan ragu untuk mengedit posting ini dengan hasil tes yang lebih banyak!
sumber
sumber
Swift 4.2 Jawaban:
Agar jari sudut bekerja, tambahkan gambar ke a
UIView
dan kemudian Anda perlu mengaturmasksToBounds
properti gambar ketrue
:Catatan: Ganti 20 dengan yang diinginkan
cornerRadius
sumber
Tidak ada jawaban dari jawaban sebelumnya yang berfungsi?
Mungkin saja ukuran UIImageView lebih besar dari ukuran gambar. Radius sudut dapat diatur dengan baik tetapi tidak terlihat dalam kasus itu.
Pemeriksaan cepat ukuran UIImageView berdasarkan kode: (atau dapat menggunakan alat "Lihat UI Hirarki" di XCode)
Dalam skenario ini, Anda harus memastikan bahwa UIImageView memiliki rasio aspek yang sama dengan gambar.
sumber