Saya memiliki UIImageView dan tujuannya adalah untuk menurunkannya secara proporsional dengan memberikan ketinggian atau lebar.
UIImage *image = [[UIImage alloc] initWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://farm4.static.flickr.com/3092/2915896504_a88b69c9de.jpg"]]];
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
//Add image view
[self.view addSubview:imageView];
//set contentMode to scale aspect to fit
imageView.contentMode = UIViewContentModeScaleAspectFit;
//change width of frame
CGRect frame = imageView.frame;
frame.size.width = 100;
imageView.frame = frame;
Gambar memang diubah ukurannya tetapi posisinya tidak di kiri atas. Apa pendekatan terbaik untuk penskalaan gambar / imageView dan bagaimana cara memperbaiki posisi?
objective-c
cocoa-touch
Ronnie Liew
sumber
sumber
Jawaban:
Diperbaiki dengan mudah, begitu saya menemukan dokumentasi!
sumber
ScaleAspectFit
sekarang menjadienum UIViewContentMode
, jadi Anda akan mengaturimageView.contentMode = UIViewContentMode.ScaleAspectFit
. Catat periode.translatesAutoresizingMaskIntoConstraints
seharusnya tidak diatur kefalse
. Butuh waktu lama sebelum saya menyadari bahwa properti ini mencegah perubahan ukuranSaya telah melihat sedikit percakapan tentang jenis skala jadi saya memutuskan untuk mengumpulkan artikel tentang beberapa jenis penskalaan mode konten paling populer .
Gambar yang terkait ada di sini:
sumber
Saya baru saja mencoba ini, dan UIImage tidak mendukung _imageScaledToSize.
Saya akhirnya menambahkan metode ke UIImage menggunakan kategori - saran yang saya temukan di forum Apple Dev.
Dalam .h proyek-lebar -
Penerapan:
sumber
UIGraphicsBeginImageContext(targetSize);
melakukannya jika([UIScreen instancesRespondToSelector:@selector(scale)]) { UIGraphicsBeginImageContextWithOptions(targetSize, NO, 0.0f); } else { UIGraphicsBeginImageContext(targetSize); }
mendukung tampilan retina tanpa membuatnya buramsumber
Anda dapat mencoba membuat
imageView
ukuran sesuai denganimage
. Kode berikut tidak diuji.sumber
seseorang dapat mengubah ukuran UIImage dengan cara ini
sumber
Kode asli yang diposting di atas berfungsi baik untuk saya di iOS 4.2.
Saya menemukan bahwa membuat CGRect dan menentukan semua nilai atas, kiri, lebar, dan tinggi adalah cara termudah untuk menyesuaikan posisi dalam kasus saya, yang menggunakan UIImageView di dalam sel tabel. (Masih perlu menambahkan kode untuk melepaskan objek)
sumber
Setel ImageView Anda dengan memilih Mode ke
Aspect Fill
dan centangClip Subviews
kotak.sumber
Ini berfungsi dengan baik untuk saya Swift 2.x:
sumber
Tetapkan
UIimageview
skala Anda .........sumber
Untuk Swift:
sumber
UIImageView + Scale.h:
UIImageView + Scale.m:
sumber
Saya menggunakan kode berikut ini. Di mana imageCoverView berada, UIView menampung UIImageView
sumber
Jika solusi yang diusulkan di sini tidak bekerja untuk Anda, dan aset gambar Anda sebenarnya adalah PDF, perhatikan bahwa XCode sebenarnya memperlakukan PDF secara berbeda dari file gambar. Secara khusus, tampaknya tidak dapat mengukur untuk mengisi dengan benar dengan PDF: itu malah berakhir dengan ubin. Ini membuat saya gila sampai saya menemukan bahwa masalahnya adalah format PDF. Konversikan ke JPG dan Anda harus siap.
sumber
Biasanya saya menggunakan metode ini untuk aplikasi saya ( kompatibel Swift 2.x ):
sumber
Saya pikir Anda dapat melakukan sesuatu seperti
sumber
Inilah cara Anda dapat menskalakannya dengan mudah.
Ini berfungsi dalam 2.x dengan Simulator dan iPhone.
sumber