iOS开发百问(4)
32、UIImage+Scale缩放图片
UIImage可以加载图片,但是我们想要得到一张缩小或放大的图片,利用UIImage不能做到,下面我们添加一个UIImage的分类,用来实现UIImage中图片的放大和缩小。
首先,创建一个UIImage+Scale类。
然后,实现该类的方法:
#import <UIKit/UIKit.h> @interface UIImage (scale) -(UIImage*)scaleToSize:(CGSize)size; @end #import "UIImage+Scale.h" @implementation UIImage (scale) -(UIImage*)scaleToSize:(CGSize)size { // 创建一个bitmap的context // 并把它设置成为当前正在使用的context UIGraphicsBeginImageContext(size); // 绘制改变大小的图片 [self drawInRect:CGRectMake(0, 0, size.width,size.height)]; // 从当前context中创建一个改变大小后的图片 UIImage* scaledImage = UIGraphicsGetImageFromCurrentImageContext(); // 使当前的context出堆栈 UIGraphicsEndImageContext(); // 返回新的改变大小后的图片 return scaledImage; } @end
最后,就是该类的使用了:
#import "UIImage+Scale.h" [[UIImage imageNamed:”p.png”] scaleToSize:CGSizeMake(252.0f,192.0f)];
33、Coreplot:在散点图中,legendTitleForBarPlot不会被调用
legendTitleForBarPlot是柱状图的数据源方法,在散点图的数据源委托CPTScatterPlotDataSource 中没有该方法。要定制 legend 的标题,唯一的方法是指定plot 的 title 属性。如果 title 为空,则使用 identifier 属性。
34、 setHidesBackButton不能隐藏返回按钮
将setHidesBackButton:animated:移到 viewDidAppear: 方法,而不要在 viewWillAppear:或者viewDidLoad方法中。
35、cannotfind protocol declaration NSURLConnectionDelegate
iOS5开始NSURLConnectionDelegate被deprecated,在NSURLConnection.h中,这些方法变成了非正式协议。同时复制了一份这些方法的拷贝到正式协议NSURLConnectionDataDelegate中。你可以直接将类接口声明的
36、警告“Property'ssynthesized getter follows Cocoa naming convention for returning 'owned'objects”
要synthesized的属性中,属性名不得以“new”开头,比如“newFeature”。
37、 Implicit declaration of function 'xxx' is invalidin C99
这是Xcode的一个bug。当编译器第一次看见函数定义,却未找到该函数原型时会报此错误。解决方法是在函数定义之前加入函数原型声明。注意,把函数原型声明语句插入到类的interface声明内(.h头文件),或者的类implementation语句之前(.m文件)。
38、-[UIImageresizableImageWithCapInsets:]: unrecognized selector
这个方法是iOS5中新增的,在iOS4中请使用stretchableImageWithLeftCapWidth:topCapHeight:方法。代码:
if([img respondsToSelector:@selector(resizableImageWithCapInsets:)]) {//for iOS 5+ img=[srcImg resizableImageWithCapInsets:UIEdgeInsetsMake(0, 6, 0, 6)]; }else{//iOS 4 compatibility img=[srcImg stretchableImageWithLeftCapWidth:6 topCapHeight:0]; }
39、计算指定字体的字符串Size
CGSizemaximumLabelSize = CGSizeMake(250 ,MAXFLOAT); CGSizeexpectedLabelSize = [LABEL.text sizeWithFont:[UIFontsystemFontOfSize:UILabel.font] constrainedToSize:maximumLabelSize lineBreakMode:UILineBreakModeWordWrap];
expectedLabelSize即根据字体、最大size限制、换行模式计算出来的实际Size。
40、ASIHTTPRequestclearDelegateAndCancel方法导致程序崩溃
ASIHTTPRequest并不会持有delegate对象,当你取消一个request或delegate释放后,为了避免调用释放了的delegate方法,我们应当取消request。但是clearDelegateAndCancel方法会导致一个调用deallocated对象错误并崩溃。
为了避免这个,你应当(针对1.8.1及之前的版本):
在delegate中持有ASIHTTPRequest对象;
当释放delegate或取消request时,使用不要调用clearDelegateAndCancel而改用“[requestrelease],request=nil;”。
41、 Castof 'int' to 'CAMediaTimingFunction *' is disallowed with ARC
以下代码导致上述错误:
transition.timingFunction= UIViewAnimationCurveEaseInOut;
事实上,就算在MRC(手动内存管理)中,这句代码也是不正确的。之所以能够不出错,是因为UIViewAnimationCurveEaseInOut通常为0,转换过来就变成了nil。实际上这句代码应该修改为:
[animationsetTimingFunction:[CAMediaTimingFunctionfunctionWithName:kCAMediaTimingFunctionEaseInEaseOut]];
以上就是iOS开发百问(4)的内容,更多相关内容请关注PHP中文网(www.php.cn)!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

WWDC tahunan telah berakhir, dan iOS18 sudah pasti menjadi tumpuan perhatian semua orang. Pada masa ini, ramai pengguna iPhone tergesa-gesa untuk menaik taraf kepada iOS18, tetapi pelbagai pepijat sistem menyebabkan orang tidak selesa. Sesetengah penulis blog berkata bahawa anda harus berhati-hati semasa menaik taraf kepada iOS18 kerana "terdapat banyak pepijat." Blogger itu berkata bahawa jika iPhone anda adalah mesin utama anda, adalah disyorkan untuk tidak menaik taraf kepada iOS18 kerana versi pertama mempunyai banyak pepijat. Beliau juga meringkaskan beberapa pepijat sistem yang ditemui pada masa ini: 1. Menukar gaya ikon tersekat, menyebabkan ikon tidak dipaparkan 2. Animasi lebar lampu suluh sering hilang 3. Apl Douyin tidak boleh memuat naik video 10 saat 5 , telefon tidak boleh dibuat dan skrinnya hitam 6. Demam yang teruk.

Terima kasih kepada netizen Ji Yinkesi, xxx_x, tomato goreng, Terrence dan stik drum ayam berempah kerana menyerahkan petunjuk! Menurut berita pada 27 Julai, Apple hari ini mengeluarkan semula kemas kini iOS/iPadOS 18 Beta 4 untuk pembangun Nombor versi dalaman telah dinaik taraf daripada 22A5316j kepada 22A5316k Pada masa ini tidak jelas perbezaan antara dua kemas kini versi Beta 4. Pembangun berdaftar boleh membuka apl "Tetapan", masukkan bahagian "Kemas Kini Perisian", klik pilihan "Kemas Kini Beta", dan kemudian togol tetapan Beta Pembangun iOS18/iPadOS18 untuk memilih versi beta. Memuat turun dan memasang versi beta memerlukan ID Apple yang dikaitkan dengan akaun pembangun. Dilaporkan pada 24 Julai, iO

Menurut berita pada 31 Julai, Apple mengeluarkan kenyataan akhbar semalam (30 Julai), mengumumkan pelancaran pakej Swift sumber terbuka baharu (swift-homomorphic-encryption) untuk membolehkan penyulitan homomorphic dalam bahasa pengaturcaraan Swift. Nota: Penyulitan Homomorfik (HE) merujuk kepada algoritma penyulitan yang memenuhi sifat operasi homomorfik teks sifir Iaitu, selepas data disulitkan secara homomorfik, pengiraan khusus dilakukan pada teks sifir, dan hasil pengiraan teks sifir yang diperolehi diproses pada masa yang sama. masa. Teks biasa selepas penyahsulitan keadaan adalah bersamaan dengan melakukan pengiraan yang sama secara langsung pada data teks biasa, mencapai "halimunan" data. Teknologi penyulitan homomorfik boleh mengira data yang disulitkan tanpa membocorkan data asas yang tidak disulitkan kepada proses operasi.

Kemas kini: Saunders Tech telah memuat naik tutorial ke saluran YouTubenya (video dibenamkan di bawah) yang menerangkan cara memasang Fortnite dan Epic Games Store pada iPad di luar EU. Walau bagaimanapun, bukan sahaja proses itu memerlukan versi beta khusus iO

Menurut berita pada 1 Jun, media teknologi AppleInsider menerbitkan catatan blog hari ini, menyatakan bahawa Apple akan melancarkan fungsi navigasi baharu "Scenes" untuk sambungan aplikasi "Freeform" dalam sistem iOS18, dan menambah pilihan baharu untuk penjajaran objek. Pengenalan kepada aplikasi "Wubianji" Pertama, mari kita perkenalkan secara ringkas aplikasi "Wubianji" Aplikasi ini akan dilancarkan pada tahun 2022 dan kini telah melancarkan versi iOS, iPadOS, macOS15 dan visionOS. Pengenalan rasmi Apple adalah seperti berikut: "Nota Tanpa Batas" ialah alat yang sangat baik untuk mengubah inspirasi menjadi realiti. Lakarkan projek, reka bentuk papan mood atau mulakan sumbang saran pada kanvas fleksibel yang menyokong hampir semua jenis fail. Dengan iCloud, semua papan anda

[Klik di sini untuk pergi terus ke tutorial peningkatan] Menurut berita pada 8 Mei, Apple menolak kemas kini iOS17.5RC (nombor versi dalaman: 21F79) kepada pengguna iPhone hari ini. Kemas kini ini tinggal 70 hari lagi daripada keluaran terakhir. Bagaimana untuk menaik taraf versi pembangunan iOS/iPadOS/watchOS/macOS dan versi beta awam? Untuk menaik taraf versi pratonton pembangun iOS/iPadOS17 dan versi beta awam, anda boleh merujuk kepada pengalaman yang dikongsi oleh rakan: Siaran Pengalaman 1||Siaran Pengalaman 2||Siaran Pengalaman 3||Siaran Pengalaman 4. Bermula dari iOS/iPadOS 16.4 Developer Preview Beta 1, anda perlu mendaftar untuk Apple Developer Program Selepas pendaftaran, buka sistem [Settings] [Software Update] untuk melihat pilihan naik taraf. Sila ambil perhatian bahawa iPhone atau IP anda

Terima kasih kepada netizen Burger Kaki Ayam Pedas, Soft Media New Friends 2092483, Handwritten Past, DingHao, Xiaoxing_14, Wowotou Eat Big Kou, Feiying Q, Soft Media New Friends 2168428, Slades, Aaron212, Happy Little Hedgehog, Little Earl, Clues for the little susu kucing yang makan ikan! [Klik di sini untuk pergi terus ke tutorial naik taraf] Menurut berita pada 24 Julai, Apple hari ini menolak kemas kini versi pratonton pembangun iOS/iPadOS18 Beta4 (nombor versi dalaman: 22A5316j) kepada pengguna iPhone dan iPad keluaran terakhir. Kertas Dinding Carplay Apple telah menambahkan kertas dinding pada CarPlay, meliputi mod terang dan gelap Gaya kertas dindingnya serupa dengan iPhone

Perkongsian praktikal... Memandangkan Apple terus melancarkan versi iOS baharu, ramai pengguna iPhone berdepan dengan pilihan sama ada untuk menaik taraf sistem. Pengeluaran iOS17.5Beta3 terbaharu telah menarik perhatian meluas, terutamanya untuk pengguna iPhone12 sama ada mereka harus meninggalkan iOS16 sedia ada dan mencuba versi Beta baharu telah menjadi persoalan yang patut dibincangkan. Berdasarkan pengalaman sebenar, artikel ini menganalisis kebaikan dan keburukan menaik taraf iPhone 12 kepada iOS 17.5 Beta 3 untuk memberikan rujukan kepada majoriti peminat Apple. Pertama sekali, kami perlu menjelaskan dengan jelas bahawa versi Beta biasanya digunakan oleh pembangun atau pengguna awal yang sanggup mengambil risiko tertentu. Ini bermakna berbanding dengan versi rasmi, versi Beta mungkin mengandungi
