0

0

iOS开发百问(4)

黄舟

黄舟

发布时间:2017-01-20 09:29:32

|

1280人浏览过

|

来源于php中文网

原创

32、uiimage+scale缩放图片
uiimage可以加载图片,但是我们想要得到一张缩小或放大的图片,利用uiimage不能做到,下面我们添加一个uiimage的分类,用来实现uiimage中图片的放大和缩小。
首先,创建一个uiimage+scale类。
然后,实现该类的方法:

#import 
@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
以下代码导致上述错误:

NT80 购物系统
NT80 购物系统

功能说明:1 会员可申请开店功能2 购买在线扣除金额3 冲值卡自动生成4 支持2级分类5 数据库压缩和备份6 会员分5个级别7 商品带讨论8 自带融合论坛,可关闭打开9 密码找回功能10 新闻``滚动新闻``帮助中心11 后台设置前台会员的上传权限12 可关闭/打开商店13 会员自助发布商品功能14 用户问题咨询管理

下载
transition.timingFunction= UIViewAnimationCurveEaseInOut;

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

[animationsetTimingFunction:[CAMediaTimingFunctionfunctionWithName:kCAMediaTimingFunctionEaseInEaseOut]];

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

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
1688阿里巴巴货源平台入口与批发采购指南
1688阿里巴巴货源平台入口与批发采购指南

本专题整理了1688阿里巴巴批发进货平台的最新入口地址与在线采购指南,帮助用户快速找到官方网站入口,了解如何进行批发采购、货源选择以及厂家直销等功能,提升采购效率与平台使用体验。

16

2026.02.06

快手网页版入口与电脑端使用指南 快手官方短视频观看入口
快手网页版入口与电脑端使用指南 快手官方短视频观看入口

本专题汇总了快手网页版的最新入口地址和电脑版使用方法,详细提供快手官网直接访问链接、网页端操作教程,以及如何无需下载安装直接观看短视频的方式,帮助用户轻松浏览和观看快手短视频内容。

0

2026.02.06

C# 多线程与异步编程
C# 多线程与异步编程

本专题深入讲解 C# 中多线程与异步编程的核心概念与实战技巧,包括线程池管理、Task 类的使用、async/await 异步编程模式、并发控制与线程同步、死锁与竞态条件的解决方案。通过实际项目,帮助开发者掌握 如何在 C# 中构建高并发、低延迟的异步系统,提升应用性能和响应速度。

0

2026.02.06

Python 微服务架构与 FastAPI 框架
Python 微服务架构与 FastAPI 框架

本专题系统讲解 Python 微服务架构设计与 FastAPI 框架应用,涵盖 FastAPI 的快速开发、路由与依赖注入、数据模型验证、API 文档自动生成、OAuth2 与 JWT 身份验证、异步支持、部署与扩展等。通过实际案例,帮助学习者掌握 使用 FastAPI 构建高效、可扩展的微服务应用,提高服务响应速度与系统可维护性。

3

2026.02.06

JavaScript 异步编程与事件驱动架构
JavaScript 异步编程与事件驱动架构

本专题深入讲解 JavaScript 异步编程与事件驱动架构,涵盖 Promise、async/await、事件循环机制、回调函数、任务队列与微任务队列、以及如何设计高效的异步应用架构。通过多个实际示例,帮助开发者掌握 如何处理复杂异步操作,并利用事件驱动设计模式构建高效、响应式应用。

1

2026.02.06

java连接字符串方法汇总
java连接字符串方法汇总

本专题整合了java连接字符串教程合集,阅读专题下面的文章了解更多详细操作。

23

2026.02.05

java中fail含义
java中fail含义

本专题整合了java中fail的含义、作用相关内容,阅读专题下面的文章了解更多详细内容。

28

2026.02.05

控制反转和依赖注入区别
控制反转和依赖注入区别

本专题整合了控制反转和依赖注入区别、解释、实现方法相关内容。阅读专题下面的文章了解更多详细教程。

18

2026.02.05

钉钉脑图插图教程合集
钉钉脑图插图教程合集

本专题整合了钉钉脑图怎么插入图片、钉钉脑图怎么用相关教程,阅读专题下面的文章了解更多详细内容。

51

2026.02.05

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Excel 教程
Excel 教程

共162课时 | 15.7万人学习

Uniapp从零开始实现新闻资讯应用
Uniapp从零开始实现新闻资讯应用

共64课时 | 6.8万人学习

Uniapp180分钟快速入门
Uniapp180分钟快速入门

共25课时 | 4.7万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号