iOS 关于横竖屏问题

iOS 关于横竖屏问题,第1张

那么问题来了,既然有两处都可以设置,那么最终取值以哪一个为准呢?

通过测试发现,如果两处都设置了,最终以第二种设置为(主要)判断依据;如果第二处未设置,则以第一处为准。

只有当前window支持某个方向的旋转,才能对控制器(如UIviewcontroller)进行相应方向的旋转并达到想要的效果(内容跟着转动)。

设置了可旋转的方向之后,就要对个别控制器做更细致的限制了,比如想让A控制只能竖屏,或者让B控制器只能横屏,就需要用到VC的扩展方法(系统自带的)

通过创建一个新项目,页面布局如下:

分别自定义了UINavigationcontroller和UIviewcontroller,并重写了vc旋转相关的三个扩展方法,将UINavigationcontroller设置为window的rootviewcontroller

直接启动APP查看旋转方法调用情况如下:

通过以上打印结果可以看出,APP启动时,调用顺序为APPdelegate的application:supportedInterfaceOrientationsForWindow: -> nav的supportedInterfaceOrientations -> nav的shouldAutorotate -> vc的supportedInterfaceOrientations

通过以上结果论证得出结论:APP在监听到旋转时,会首先通知window 并执行delegate中的supportedInterfaceOrientationsForWindow方法,然后通知rootviewcontroller并执行supportedInterfaceOrientations方法,最后通知栈顶vc并执行supportedInterfaceOrientations。

以上例子我们发现只调用了nav的shouldAutorotate,而栈顶vc的shouldAutorotate方法被忽略了,或许我们可以猜测出,是否能够旋转取决于vc的父容器即nav。

此时,我们手动旋转模拟器,看看打印结果如何

通过以上打印结果可以看出,手动旋转APP时,调用顺序为APPdelegate的application:supportedInterfaceOrientationsForWindow: -> nav的supportedInterfaceOrientations -> nav的shouldAutorotate

即使,手动旋转手机,也没有调用vc的shouldAutorotate方法,甚至连vc的supportedInterfaceOrientations方法都没有调用,

为了进一步验证猜想,我们点击push按钮,跳转到另一个只允许横屏的自定义vc(LandscapeRightVC),打印结果如下:

通过打印可以看到只调用了LandscapeRightVC的旋转方向的方法,而supportedInterfaceOrientations、shouldAutorotate方法均未调用,但屏幕方向确实已经横屏了,之所以能够横屏时因为此时nav支持横屏方向,进一步验证了以上观点。

我们再将当前nav设置为只支持竖屏,并且点击present按钮,跳转到只支持横屏的vc看看打印情况:

执行顺序大致是:

[AppDelegate application:supportedInterfaceOrientationsForWindow:] ->

[NavVC supportedInterfaceOrientations] ->

[LandscapeRightVC preferredInterfaceOrientationForPresentation] ->

[LandscapeRightVC supportedInterfaceOrientations] ->

[NavVC shouldAutorotate] ->

[LandscapeRightVC shouldAutorotate] ->

[LandscapeRightVC supportedInterfaceOrientations]

那么对于一个项目中个别页面需要横屏时,我们大致可以进行如下写法:

假如将rootviewcontroller设置为tabbar,并将tabbar设置为只支持竖屏,而将其中一个item设置为LandscapeRightVC,打印结果如下:

顺便提一提UIDeviceOrientation(设备方向)和UIInterfaceOrientation(UI方向)的区别

「创造更多非凡的方式以发挥 iPhone 效能」,这是苹果对 iOS 15 的期许。从 WWDC21 发布首个开发者预览版起,整个夏季我们就在不断收到更新提醒。千呼万唤始出来,经历 3 个月的等待后终于迎来了 iOS 15 正式版。苹果软件工程高级副总裁 Craig Federighi 是这样概述其特性的:与家人亲友保持联系找一处心无旁贷运用智能技术,搜寻所需信息 探索 身边世界围绕着这 4 点,我们从刚安装好的 iOS 15 正式版中,体验并整理了 20+ 个实用新功能,下面就跟随文章来一探究竟吧。

实况文本(Live Text)

空间音频

通知

a 外观

b 通知摘要

c 静音通知

专注模式(Focus)

a 通知

b 主屏

聚焦搜索

照片

a Memory Mixes

b 属性查看

iMessage

Safari

FaceTime

a 空间音频

b 人像模式

c 语 音突显模式 / 宽谱模式

辅助功能

a 放大镜

b 图像描述

c 语 音 *** 控

天气

拟我表情(Memoji)

闹钟

视觉查找(Visual Look Up)

有待上线的功能

a FaceTime 中的 SharePlay

b 《查找》网络对 AirPods 的支持

c 《钱包》电子身份z

d 视觉查找(Visual Look Up)

iOS 15 中实用性最强、体验最惊艳的功能莫过于「实况文本」,轻轻松松就能实现照片中文本的提取和和快速应用。无论是相机正在拍摄的画面、已经拍好的照片,还是屏幕截图、网页,整个系统中的照片都能够通点击后时显示文字,支持复制、粘贴、查找及翻译。比如打开相机,当摄像头识别到文字便会出现「实况文本」的符号,点击即可对文本内容进行 *** 作。像电话、地理位置这类信息,还支持被识别为链接,以便速跳转。

拍摄照片时可识别文字在如豆瓣、备忘录等 app 中,双击输入框,选择「来自相机的文本」,也可以调用摄像头识别文字。

在输入框调用相机可直接识别文字相册中长按图内文字即可快速选中。从这几个月的使用体验来看,识别准确度非常高,手写字体也能识别。

识别相册中的文字网页中的也能识别。

识别网页中的文字目前「实况文本」已支持英语、中文(繁体简体均可)、法语、意大利语、德语、西班牙语、葡萄牙语 7 种语言,可跨 iPhone、iPad、Mac *** 作。

得益于苹果的动态头部追踪技术,iOS 15 给到的另一个大惊喜,就是 AirPods Pro / AirPods Max 带来的更极致的「空间音频」沉浸体验。什么叫「空间音频」?将环绕声道精准置于合适的方位,任意转动头部或移动设备也没问题,从而带来身临其境的环绕声体验。一年前 iOS 14 发布时便新增了「空间音频」功能,不过对音源有所限制,只能在苹果自家的 Apple TV+、腾讯视频的「臻彩视听」等应用条件下才能实现。而 iOS 15 中升级版的「空间音频」功能,不再局限于 Apple Music 的杜比全景声等,即使你用《QQ 音乐》《网易云音乐》听歌,AirPods Pro / AirPods Max 也能将声音模拟成空间立体声呈现,体验绝佳,用过的都赞不绝口。

《网易云音乐》也能体验立体声

通知则带来了更新 iOS 15 后感知最强的变化。 a 外观 在 iOS 15 以前,收到短信通知还只显示 iMessage 图标,而在新版本中,通知横幅不仅会直接显示联系人照片,还与原本的 app 图标一起进行了放大,你将能更加清晰地区分查看消息。

通知外观对比 左为 iOS 146,右为 iOS 15 b 通知摘要 新增的「通知摘要」功能非常「有个性」,打开「设置 > 通知 > 定时推送摘要」,依照提示选择 app、设定时间和频率,它就可以在指定的时间分批发送一组通知,并按顺序智能排列。

设定通知摘要不必担心会因为这个功能错过朋友的消息,因为这被「通知摘要」汇总到一起的内容,大多属于「非紧急通知」,优先级相对较低,而微信消息、短信等具有强时效性的信息,则会立刻送达,并提升至顶部。

c 静音通知 此前,向左滑动通知,选择「管理」后只有「隐式推送」和「关闭…」两种选择,而在 iOS 15 中,新增了「静音一小时」、「今天不再提醒」等选项,并支持暂时关闭信息线索,更为人性化。

通知管理对比 左为 iOS 146,右为 iOS 15

强化通知功能的,还有「专注模式」。顾名思义,「专注模式」能助你更好地专注重要信息,由之前的「勿扰模式」升级而来,通过「设置 > 专注」可以预设你的状态,比如驾驶、健身、阅读、 游戏 、睡眠或自定类别,根据自身需求设置不同类型的信息展示偏好。

预设 游戏 状态下的「专注模式」举个例子,你按上方图示预设后,打开了《和平精英》手游并开启 游戏 专注模式,此时除了你允许的成员和 app 发送消息通知,其他通知都会被暂时屏蔽,减少对你 游戏 的影响。 a 通知 而开启「专注模式」的方式,有以下 2 种:智能激活:在「设置 > 专注」中可选择此项,将根据定位、app 使用情况等信号 适时 自动打开对应状态的「专注模式」;手动打开:从屏幕右上方边缘向下轻扫打开「控制中心」,点击「专注模式」即可。

手动开启「专注模式」开启后,如果在此时有非预设成员的信息进入,你的 iMessage 会向其展示,你开启了「专注模式」,暂时收不到消息。值得一提的是,在 iPhone 上开启不同状态的「专注模式」后,通知显示还会同步到其他苹果设备。 b 主屏 除了通知,「专注模式」甚至能够将你的 iPhone 主屏幕进行重新排列。你可以创建当开启「专注模式」时所需要的 app 和小组件主屏幕页面,便这样就会显示相关 app 以减少分心。

设置「专注模式」下的主屏

iOS 15 的全局聚焦能搜索了,因为「实况文本」功能的存在,甚至还能识别出内的文字信息。输入「猫」、「花」、「云」等名词,便能很方便地将同类照片进行展示。

输入一些里文字内容,也能快速呈现。

a Memory Mixes iOS 15 版本的照片回忆功能迎也迎来了一次大更新。除了全新的外观和交互界面,Apple Music 还融入其中。你的相片集锦可以 Apple Music 推荐的配乐,也能选自己的播放列表里喜欢的歌。打开相册,选择「为你推荐」标签页,任意选择一个「回忆」,可以看到由系统 即兴 生成的动态交互效果,伴随着音乐节拍进行切换。如果想要自定义「回忆」效果,不妨试试最新上线的「Memory Mixes」功能,轻扫轮播图变换效果,系统会进行智能匹配节奏、过渡效果等,并会给到专业的调色设置。

照片回忆中的 Memory Mixes 功能 b 属性查看 在之前的 iOS 版本中,想要查看相册照片的属性,往往需要借助一些第三方 app 来完成。现在,苹果在 iOS 15 的相册中增加了相册查找的功能,点击相册照片页面底栏的「i」,你所拍摄照片的信息就能够一览无遗了。

iMessage 的社交属性越来越强了。在 iOS 15 中,iMessage 新增了分享功能,你通过 iMessage 与朋友分享照片、Safari、Apple News、Apple Music、播客和 Apple TV app 里的内容会自动出现在相应的 app 中;除此之外,iMessage 还支持共享这些 app 的阅读和播放清单。新 iMessage 还支持收藏多张照片,少量的集会显示可浏览的拼贴画,大量的集则会显示为堆栈,当你点击照片集时,还能在其下方进行回复。iOS 15 的 iMessage 还增加了图钉「置顶」功能,对于你特别感兴趣的内容,你可以快速地将其固定在 iMessage 中。

WWDC21 上,Safari 也迎来了一次完全重构的设计,变得更漂亮也更好用。新版 Safari 标签页设计更加紧凑,还支持标签组功能,按钮也经过大幅度的精简,还会自动拾取页面的主色调,让窗口与网页融为一体,看起来沉浸感更强。

灵活的 Safari 标签页此外,Safari 采用了新的标签栏设计,你可以在这里对繁杂的标签页进行分类和保存,还可以直接拖拽到邮件里与朋友分享,标签不再呆板地呆在标签栏上,而是成为了一张张可移动可储存的页面,如同书页一般。并且标签组支持多设备间的无缝同步,在任一设备上的改动,都能及时同步到所有设备上,或许这次你真的可以放下 Chrome,试试非常努力的 Safari。

正如 WWDC21 上 Craig Federighi 概括的那样,更新后的 FaceTime 更加「自然、舒适、逼真」。 a 空间音频 FaceTime 自然也支持「空间音频」模式。试想下,你坐在沙发上,你的朋友左右分散着坐在你周围,你能用耳朵感受出他们在左在右,或远或近,这就是 FaceTime 想带给你的感觉,让你们仿佛面对面一样交流。 b 人像模式 就像用 iPhone 原生相机拍摄人像一样,你在 FaceTime 和人视频时也能开启人像模式,达到虚化背景突出本人的效果了。

开启人像模式后背景会虚化 c 语 音突显模式 / 宽谱模式 语音突显模式指的是麦克风更突出语人声带屏蔽周围的杂乱声,由此带来好的降噪效果。宽谱模式恰恰相反,如果你想让朋友听到现场乐队的歌声、隔壁的狗叫声,那么这个模式会更加适合。当你在与朋友进行 FaceTime 通话时,从右上角往下滑动屏幕,打开「控制中心」,可在「麦克风模式」处选择语音突显模式或宽谱模式。

a 放大器 iOS 15 中,原本在「辅助功能」里的「放大器」功能,独立成 app 了——它相当于一块数码放大镜,你可以自定义亮度、对比度,以及各类滤镜。

《放大器》app *** 作演示这听起来像是照相时放大尺寸,事实上《放大器》效果好很多,字体会更清晰易认。上课、开会时拍张 PPT 做笔记,查看一些「反人类设计」的菜单或说明书,都很方便。如果将亮度和对比度拉高,再选用灰度滤镜,还可以实现类似扫描仪的效果。

上为相机放大效果,下为放大器放大效果 b 图像描述 对视障人士来说,苹果基于旁白提供的「辅助功能 > 旁白 > 旁白识别 > 描述」是个很实用的功能,它能识别网站或 app 中的并以语音形式描述。在 iOS 14 中这项功能仅支持英文,好在 iOS 15 最新加入了对中文的支持。

左为 iOS 15,右为 iOS 146举个例子,打开《照片》中的一张小狗在自行车篮子里的照片,「旁白」会识别图像内容,将照片信息念出,「坐在椅子上的棕色狗」。虽然还存在些许偏差,但准确度已经很不错了。

注意看底部的「旁白」读出的文字 c 语 音 *** 控 在《为什么这些人迫不及待要升级 iOS 15?》一文中,视障人士黄俊文告诉我们,iOS 15 中的「辅助功能 > 语音控制」功能也加入了中文支持。这意味着,类似抖音这样滑动上下翻页的短视频产品,设置好基本手势后,口述便能完成切换;类似需要寻找按钮才能完成的 *** 作,靠说出命令就能快速实现。

打开新版天气 app,你会发现布局发生了很大的变化。没错,苹果将天气 app 进行了重新设计,新界面提供了更多的信息内容,包括了更多天气数据的图形显示、全屏地图和动态布局,并会根据具体情况产生相应变化。新天气 app 的动画背景十分精致,能够准确地反映了太阳的位置和降雨情况。开始下雨下雪和结束的时候,你都能通过 iPhone 收到通知,这一点还是非常人性化的。

天气 app 界面 左为 iOS 146,右为 iOS 15

iOS 15 新增了一系列的拟我表情,你可以用超过 40 多款新服装,心形、星形和复古造型眼镜框,不同色的左眼和右眼,挥手和灵光一闪等 9 种拟我表情贴纸,灵活来搭配彰显特性。值得一提的是,这次苹果还为残障人士发布了 3 款无障碍设计的拟我贴纸,包括耳蜗植入物、氧气管、软头盔。

拟我表情中的耳蜗植入物、氧气管、软头盔

此前的 iOS 14 中,设定闹钟的 *** 作由旋转拨盘改为了以数字键盘为主的输入方式。iOS 15 中苹果又将闹钟设定界面改了回来,现在,入睡前的你又能伴随着 Taptic Engine 悦耳的震动声,轻松上下拖动拨盘就轻松的设定闹钟了。

14 有待上线的功能

苹果 iOS 15 正式版如期而至,但并非完整版,据 wccftech 消息,部分WWDC21 提到的功能尚未完全就绪,将在后续版本的更新中提供。a FaceTime 中的 SharePlay若你用过 Zoom、企业微信等会议工具,将对 FaceTime 新推出的 SharePlay 共享体验功能感到十分亲切。SharePlay 分为几个方面:一起观看,也就是和朋友同时看**电视节目;一起聆听,边 FaceTime 边与朋友分享音乐,同步播放,且共享音乐队列;分享屏幕等。

用 FaceTime 的 SharePlay 功能一起听音乐 b 《查找》网络对 AirPods 的支持 AirPods 的提升不仅仅是「空间音频」,你甚至还能省下一个 AirTag 的钱。在 iOS 15 的查找 app 中, AirPods 可以利用查找网络的蓝牙信息进行定位,设为丢失模式的 AirPods 无论是否在充电盒中都能发出提示音了。

c 《钱包》电子身份z 钱包 app 将新增面向日常地点的各种钥匙。比如别墅、公寓、工作场所,钱包可以添加工牌,轻点即可进入大楼或办公室。外出旅行,钱包 app 会自动添加房卡,今年秋天起,凯悦集团全球千余家酒店将接入这项服务,之后众多锁具和门禁系统品牌也将陆续接入。另外,身份z数字化也是刚需,用以代替实体身份z。目前美国亚利桑那州和佐治亚州两州已率先支持,数字驾照和身份z数据都允许存储在 iPhone 上,康涅狄格州、爱荷华州等也计划后续跟进。

将驾照添加到 iPhone《钱包》中 d 视觉查找(Visual Look Up) 不单是文本,实现「实况文本」的深度神经网络据说还能完成「视觉查找」工作,然而这项功能在大陆地区仍未上线。根据介绍,只需向上滑动或点击任何照片上的带有小星星的信息按钮「i」,即可快速通过 Siri 搜索查找信息,包括植物花卉、犬种、艺术品、书籍、世界各地的标志性建筑等。

对照片进行「视觉查找」,小爪印代表动物 来自:iMore通过对 iOS 15 新功能的介绍,我们可以看出,苹果仍然在从易用和人性化的维度持续进化。无论是能与朋友分享喜好内容,向社交迈进的 iMessage,还是会及时提醒你下雨打雷,担心你通勤坐过站的天气和地图,都能够很好的证明这一点。下面附上支持 iOS 更新的机型,能看到 iPhone 6s、iPhone SE 等机型都还支持更新,但无法体验到所有功能。

值得一提的是,苹果官网介绍,从 iOS 15 开始,你可以自行选择是保留在 iOS 14 还是进行大版本升级。如果你的 iPhone 存在存储空间不足、机型偏老等情况,不妨考虑继续只升级 iOS 14。

左图为官网介绍,右图为你可以选择是否升级到 iOS 15在这几个月体验 iOS 15 测试版的过程中,我们使用 iPhone 11、iPhone 12 Pro Max 等机型偶尔会出现突然发热的情况,续航上并没有太明显的提升。不过具体正式版表现如何,还是欢迎大家在留言区分享。

- (void)drawRect:(CGRect)rect {

//写字

[@"程序员"drawInRect:CGRectMake(20,380,100,50)withAttributes:@{NSFontAttributeName:[UIFontsystemFontOfSize:20],NSForegroundColorAttributeName:[UIColorredColor]}];

CGContextRefcontext =UIGraphicsGetCurrentContext();

//画线

CGPointaPoints[3];//坐标

aPoints[0] =CGPointMake(100,80);//坐标1

aPoints[1] =CGPointMake(130,80);//坐标2

aPoints[2] =CGPointMake(130,100);//坐标3

CGContextAddLines(context, aPoints,3);//添加线

CGContextDrawPath(context,kCGPathStroke);//根据坐标绘制路径

//弧线(方法一)

/

从(140,80)到(148,68)画一条直线,从(148,68)到(156,80)画一条直线,两条线之间画一条10度的曲线

/

CGContextSetRGBStrokeColor(context,89/2550,89/2550,89/2550,1);//改变画笔颜色

CGContextMoveToPoint(context,140,80);//开始坐标p1

CGContextAddArcToPoint(context,148,68,156,80,10);

CGContextStrokePath(context);//绘画路径

//弧线(方法二)

/

以(200,100)为圆心,30为半径,逆时针画60度弧线(1为顺时针,0为逆时针)

/

CGContextAddArc(context,200,100,30,0,M_PI/3,0);

CGContextStrokePath(context);//绘画路径

//简单矩形

CGContextStrokeRect(context,CGRectMake(100,150,10,10));//画方框

CGContextFillRect(context,CGRectMake(120,180,10,10));//填充框

//画矩形(填充颜色)

/

/

UIColoraColor = [UIColorcolorWithRed:1green:00blue:0alpha:1];

//矩形,并填充颜色

CGContextSetLineWidth(context,20);//线的宽度

aColor = [UIColorblueColor];//blue蓝色

CGContextSetFillColorWithColor(context, aColorCGColor);//填充颜色

aColor = [UIColoryellowColor];

CGContextSetStrokeColorWithColor(context, aColorCGColor);//线框颜色

CGContextAddRect(context,CGRectMake(140,220,60,30));//画方框

CGContextDrawPath(context,kCGPathFillStroke);//绘画路径

//矩形(填充渐变颜色)

//方式一:

CAGradientLayergradient1 = [CAGradientLayerlayer];

gradient1frame=CGRectMake(240,300,60,30);

gradient1colors= [NSArrayarrayWithObjects:(id)[UIColorwhiteColor]CGColor,

(id)[UIColorgrayColor]CGColor,

(id)[UIColorblackColor]CGColor,

(id)[UIColoryellowColor]CGColor,

(id)[UIColorblueColor]CGColor,

(id)[UIColorredColor]CGColor,

(id)[UIColorgreenColor]CGColor,

(id)[UIColororangeColor]CGColor,

(id)[UIColorbrownColor]CGColor,nil];

[selflayerinsertSublayer:gradient1atIndex:0];

//方式二:

CGColorSpaceRefrgb =CGColorSpaceCreateDeviceRGB();

CGFloatcolors[] =

{

1,1,1,100,

1,1,0,100,

1,0,0,100,

1,0,1,100,

0,1,1,100,

0,1,0,100,

0,0,1,100,

0,0,0,100,

};

CGGradientRefgradient =CGGradientCreateWithColorComponents

(rgb, colors,NULL,sizeof(colors)/(sizeof(colors[0])4));//形成梯形,渐变的效果

CGColorSpaceRelease(rgb);

//画线形成一个矩形

//CGContextSaveGState与CGContextRestoreGState的作用

/

CGContextSaveGState函数的作用是将当前图形状态推入堆栈。之后,您对图形状态所做的修改会影响随后的描画 *** 作,但不影响存储在堆栈中的拷贝。在修改完成后,您可以通过CGContextRestoreGState函数把堆栈顶部的状态d出,返回到之前的图形状态。这种推入和d出的方式是回到之前图形状态的快速方法,避免逐个撤消所有的状态修改;这也是将某些状态(比如裁剪路径)恢复到原有设置的唯一方式。

/

CGContextSaveGState(context);

CGContextMoveToPoint(context,220,90);

CGContextAddLineToPoint(context,240,90);

CGContextAddLineToPoint(context,240,110);

CGContextAddLineToPoint(context,220,110);

CGContextClip(context);//context裁剪路径,后续 *** 作的路径

//CGContextDrawLinearGradient(CGContextRef context,CGGradientRef gradient, CGPoint startPoint, CGPoint endPoint,CGGradientDrawingOptions options)

//gradient渐变颜色,startPoint开始渐变的起始位置,endPoint结束坐标,options开始坐标之前or开始之后开始渐变

CGContextDrawLinearGradient(context, gradient,CGPointMake

(220,90) ,CGPointMake(240,110),

kCGGradientDrawsAfterEndLocation);

CGContextRestoreGState(context);//恢复到之前的context

//再写一个看看效果

CGContextSaveGState(context);

CGContextMoveToPoint(context,260,90);

CGContextAddLineToPoint(context,280,90);

CGContextAddLineToPoint(context,280,100);

CGContextAddLineToPoint(context,260,100);

CGContextClip(context);//裁剪路径

//说白了,开始坐标和结束坐标是控制渐变的方向和形状

CGContextDrawLinearGradient(context, gradient,CGPointMake

(260,90) ,CGPointMake(260,100),

kCGGradientDrawsAfterEndLocation);

CGContextRestoreGState(context);//恢复到之前的context

//颜色渐变的圆

[@"颜色渐变的圆:"drawInRect:CGRectMake(20,380,150,50)withAttributes:@{NSFontAttributeName:[UIFontsystemFontOfSize:20],NSForegroundColorAttributeName:[UIColorredColor]}];

CGContextDrawRadialGradient(context, gradient,CGPointMake(200,400),00,CGPointMake(200,400),10,kCGGradientDrawsBeforeStartLocation);

//画椭圆

CGContextAddEllipseInRect(context,CGRectMake(160,180,20,8));//椭圆

CGContextDrawPath(context,kCGPathFillStroke);

//画三角形

//只要三个点就行跟画一条线方式一样,把三点连接起来

CGPointsPoints[3];//坐标点

sPoints[0] =CGPointMake(100,220);//坐标1

sPoints[1] =CGPointMake(130,220);//坐标2

sPoints[2] =CGPointMake(130,160);//坐标3

CGContextAddLines(context, sPoints,3);//添加线

CGContextClosePath(context);//封起来

CGContextDrawPath(context,kCGPathFillStroke);//根据坐标绘制路径

//画圆角矩形/

floatfw =180;

floatfh =280;

CGContextMoveToPoint(context, fw, fh-20);//开始坐标右边开始

CGContextAddArcToPoint(context, fw, fh, fw-20, fh,10);//右下角角度

CGContextAddArcToPoint(context,120, fh,120, fh-20,10);//左下角角度

CGContextAddArcToPoint(context,120,250, fw-20,250,10);//左上角

CGContextAddArcToPoint(context, fw,250, fw, fh-20,10);//右上角

CGContextClosePath(context);

CGContextDrawPath(context,kCGPathFillStroke);//根据坐标绘制路径

/画贝塞尔曲线/

//二次曲线

CGContextMoveToPoint(context,10,500);//设置Path的起点

CGContextAddQuadCurveToPoint(context,50,480,60,460);//设置贝塞尔曲线的控制点坐标和终点坐标

CGContextStrokePath(context);

//三次曲线函数

CGContextMoveToPoint(context,40,600);//设置Path的起点

CGContextAddCurveToPoint(context,50,620,80,650,100,700);//设置贝塞尔曲线的控制点坐标和控制点坐标终点坐标

CGContextStrokePath(context);

//

UIImageimage = [UIImageimageNamed:@"qianggou dianji-1"];

[imagedrawInRect:CGRectMake(60,600,40,40)];//在坐标中画出

//[image drawAtPoint:CGPointMake(100, 340)];//保持大小在point点开始画,可以把注释去掉看看

CGContextDrawImage(context,CGRectMake(100,340,20,20), imageCGImage);

//使用这个使上下颠倒了,参考>

以上就是关于iOS 关于横竖屏问题全部的内容,包括:iOS 关于横竖屏问题、苹果 iOS 15 正式版上线!这 20+个实用功能告诉你值不值得升、iOS draw出各种图形等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9595853.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存