iOS开发百问(4)

Jan 20, 2017 am 09:29 AM

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
Salin selepas log masuk

最后,就是该类的使用了:

#import "UIImage+Scale.h"
[[UIImage imageNamed:”p.png”] scaleToSize:CGSizeMake(252.0f,192.0f)];
Salin selepas log masuk

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];
}
Salin selepas log masuk

39、计算指定字体的字符串Size

CGSizemaximumLabelSize = CGSizeMake(250 ,MAXFLOAT);
CGSizeexpectedLabelSize = [LABEL.text sizeWithFont:[UIFontsystemFontOfSize:UILabel.font]
constrainedToSize:maximumLabelSize
lineBreakMode:UILineBreakModeWordWrap];
Salin selepas log masuk

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;
Salin selepas log masuk

事实上,就算在MRC(手动内存管理)中,这句代码也是不正确的。之所以能够不出错,是因为UIViewAnimationCurveEaseInOut通常为0,转换过来就变成了nil。实际上这句代码应该修改为:

[animationsetTimingFunction:[CAMediaTimingFunctionfunctionWithName:kCAMediaTimingFunctionEaseInEaseOut]];
Salin selepas log masuk


以上就是iOS开发百问(4)的内容,更多相关内容请关注PHP中文网(www.php.cn)!


Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

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

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Versi pertama iOS 18 Apple terdedah kepada banyak pepijat: demam serius, kelewatan WeChat Versi pertama iOS 18 Apple terdedah kepada banyak pepijat: demam serius, kelewatan WeChat Jun 13, 2024 pm 09:39 PM

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.

Apple mengeluarkan semula kemas kini iOS/iPadOS 18 Beta 4, nombor versi dinaikkan kepada 22A5316k Apple mengeluarkan semula kemas kini iOS/iPadOS 18 Beta 4, nombor versi dinaikkan kepada 22A5316k Jul 27, 2024 am 11:06 AM

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

Apple mengeluarkan pakej Swift sumber terbuka untuk penyulitan homomorfik, digunakan dalam iOS 18 Apple mengeluarkan pakej Swift sumber terbuka untuk penyulitan homomorfik, digunakan dalam iOS 18 Jul 31, 2024 pm 01:10 PM

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 | Penggodam menerangkan cara memasang Epic Games Store dan Fortnite pada iPad di luar EU Kemas kini | Penggodam menerangkan cara memasang Epic Games Store dan Fortnite pada iPad di luar EU Aug 18, 2024 am 06:34 AM

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

Ciri baharu apl 'Nota Tanpa Batas' iOS 18 Apple: fungsi Scenes diperluas, penjajaran grid diperkenalkan Ciri baharu apl 'Nota Tanpa Batas' iOS 18 Apple: fungsi Scenes diperluas, penjajaran grid diperkenalkan Jun 02, 2024 pm 05:05 PM

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

Versi Apple iOS 17.5 RC dikeluarkan: membolehkan pengguna iPhone EU memuat turun aplikasi daripada tapak web Versi Apple iOS 17.5 RC dikeluarkan: membolehkan pengguna iPhone EU memuat turun aplikasi daripada tapak web May 08, 2024 am 09:30 AM

[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

Pratonton Pembangun Apple iOS/iPadOS 18 Beta 4 dikeluarkan: Menambah kertas dinding CarPlay, memilih tetapan pilihan, kawalan kamera dipertingkat Pratonton Pembangun Apple iOS/iPadOS 18 Beta 4 dikeluarkan: Menambah kertas dinding CarPlay, memilih tetapan pilihan, kawalan kamera dipertingkat Jul 24, 2024 am 09:54 AM

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

Sekiranya iPhone12 ios16 dikemas kini kepada ios17.5beta3? Bagaimanakah pengalaman ios17.5beta3? Sekiranya iPhone12 ios16 dikemas kini kepada ios17.5beta3? Bagaimanakah pengalaman ios17.5beta3? Apr 25, 2024 pm 04:52 PM

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

See all articles