Saya ingin menambahkan gambar ke UIButton, dan juga ingin menskalakan gambar saya agar sesuai dengan UIButton (membuat gambar lebih kecil). Tolong tunjukkan bagaimana melakukannya.
Inilah yang telah saya coba, tetapi tidak berhasil:
- Menambahkan gambar ke tombol dan menggunakan
setContentMode
:
[self.itemImageButton setImage:stretchImage forState:UIControlStateNormal];
[self.itemImageButton setContentMode:UIViewContentModeScaleAspectFit];
- Membuat "gambar peregangan":
UIImage *stretchImage = [updatedItem.thumbnail stretchableImageWithLeftCapWidth:0 topCapHeight:0];
Jawaban:
Jika Anda benar-benar ingin menskalakan gambar, lakukan, tetapi Anda harus mengubah ukurannya sebelum menggunakannya. Mengubah ukurannya pada waktu proses hanya akan kehilangan siklus CPU.
Ini adalah kategori yang saya gunakan untuk menskalakan gambar:
UIImage + Extra.h
UIImage + Extra.m
Anda dapat menggunakannya sesuai ukuran yang Anda inginkan. Suka :
sumber
UIGraphicsBeginImageContext
bukanUIGraphicsBeginImageContextWithOptions
. Perbaiki saja.Saya memiliki masalah yang sama. Cukup setel ContentMode dari ImageView yang ada di dalam UIButton.
Semoga ini membantu.
sumber
imageView.contentMode
, jenisNumber
, dan nilai1
Tidak ada jawaban di sini yang benar-benar berhasil untuk saya, saya memecahkan masalah dengan kode berikut:
Anda juga dapat melakukan ini di Interface Builder.
sumber
Aspect fit
bukanscale to fill
.Cara termudah untuk menyetel UIButton imageView secara terprogram dalam mode penyesuaian aspek :
Cepat
Objective-C
Catatan: Anda dapat mengubah .scaleAspectFit (UIViewContentModeScaleAspectFit) menjadi .scaleAspectFill (UIViewContentModeScaleAspectFill) untuk menyetel mode pengisian aspek
sumber
Saya memiliki masalah dengan gambar yang tidak mengubah ukuran secara proporsional sehingga cara saya memperbaikinya menggunakan sisipan tepi.
sumber
Ini sekarang dapat dilakukan melalui properti UIButton IB. Kuncinya adalah mengatur gambar Anda sebagai latar belakang, jika tidak maka tidak akan berhasil.
sumber
Memperluas jawaban Dave, Anda dapat mengatur
contentMode
semua tombolimageView
di IB, tanpa kode apa pun, menggunakan Runtime Attributes:1
artinyaUIViewContentModeScaleAspectFit
,2
akan berartiUIViewContentModeScaleAspectFill
.sumber
Jika Anda hanya ingin mengurangi gambar tombol Anda:
sumber
1 - Hapus teks default tombol (penting)
2 - atur perataan seperti gambar
3 - atur mode konten seperti gambar
sumber
Saya memiliki metode yang melakukannya untuk saya. Metode tersebut mengambil
UIButton
dan membuat aspek gambar sesuai.sumber
Solusi terbersih adalah dengan menggunakan Tata Letak Otomatis . Saya menurunkan Prioritas Resistensi Kompresi Konten saya
UIButton
dan mengatur gambar (bukan Gambar Latar Belakang ) melalui Pembuat Antarmuka . Setelah itu saya menambahkan beberapa batasan yang menentukan ukuran tombol saya (cukup rumit dalam kasus saya) dan itu bekerja seperti pesona.sumber
Background Image
pastikan Anda telah menyetel gambar ke properti Image, tetapi tidak ke Background
sumber
Gambar latar belakang sebenarnya dapat diatur ke isi skala dengan cukup mudah. Hanya perlu melakukan sesuatu seperti ini di subclass UIButton:
sumber
Swift 5.0.0
sumber
Untuk Xamarin.iOS (C #):
sumber
Anda hanya perlu menyetel mode konten UIButton imageview untuk tiga acara. -
Kami memiliki kode untuk tiga acara bcoz saat menyorot atau memilih jika ukuran tombol adalah KOTAK dan ukuran gambar persegi panjang maka itu akan menampilkan gambar persegi pada saat menyorot atau memilih.
Saya yakin ini akan berhasil untuk Anda.
sumber