日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

OC语言知识12

發布時間:2024/7/19 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OC语言知识12 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文目錄

  • 一、添加一個簡單的圖層
  • 二、添加一個顯示圖片的圖層
  • 三、為什么CALayer中使用CGColorRef和CGImageRef這2種數據類型,而不用UIColor和UIImage?
  • 四、UIView和CALayer的選擇
  • 五、UIView和CALayer的其他關系
*?上一講已經說過,UIView內部默認有個CALayer對象(層),通過layer屬性可以訪問這個層。要注意的是,這個默認的層不允許重新創建,但可以往層里面添加子層 *?UIView可以通過addSubview:方法添加子視圖,類似地,CALayer可以通過addSublayer:方法添加子層 接下來演示一下如何添加子層: 回到頂部

一、添加一個簡單的圖層

1 CALayer *myLayer = [CALayer layer];2 // 設置層的寬度和高度(100x100)3 myLayer.bounds = CGRectMake(0, 0, 100, 100);4 // 設置層的位置5 myLayer.position = CGPointMake(100, 100);6 // 設置層的背景顏色:紅色7 myLayer.backgroundColor = [UIColor redColor].CGColor;8 // 設置層的圓角半徑為109 myLayer.cornerRadius = 10; 10 11 // 添加myLayer到控制器的view的layer中 12 [self.view.layer addSublayer:myLayer];

* 第1行創建了一個自動釋放的CALayer對象,你也可以使用經典的alloc和init方法來創建

* 第12行將創建好的層添加到控制器的view的層中

?

回到頂部

二、添加一個顯示圖片的圖層

1 CALayer *myLayer = [CALayer layer];2 // 設置層的寬度和高度(100x100)3 myLayer.bounds = CGRectMake(0, 0, 100, 100);4 // 設置層的位置5 myLayer.position = CGPointMake(100, 100);6 // 設置需要顯示的圖片7 myLayer.contents = (id)[UIImage imageNamed:@"lufy.png"].CGImage;8 // 設置層的圓角半徑為109 myLayer.cornerRadius = 10; 10 // 如果設置了圖片,需要設置這個屬性為YES才有圓角效果 11 myLayer.masksToBounds = YES; 12 13 // 添加myLayer到控制器的view的layer中 14 [self.view.layer addSublayer:myLayer];

* 在第7行設置需要顯示的圖片,注意,這里用的是UIImage的CGImage屬性,是一種CGImageRef類型的數據

?

回到頂部

三、為什么CALayer中使用CGColorRef和CGImageRef這2種數據類型,而不用UIColor和UIImage?

* 首先要知道:CALayer是定義在QuartzCore框架中的;CGImageRef、CGColorRef兩種數據類型是定義在CoreGraphics框架中的;UIColor、UIImage是定義在UIKit框架中的

* 其次,QuartzCore框架和CoreGraphics框架是可以跨平臺使用的,在iOS和Mac OS X上都能使用,但是UIKit只能在iOS中使用

* 因此,為了保證可移植性,QuartzCore不能使用UIImage、UIColor,只能使用CGImageRef、CGColorRef

* 不過很多情況下,可以通過UIKit對象的特定方法,得到CoreGraphics對象,比如UIImage的CGImage方法可以返回一個CGImageRef

?

回到頂部

四、UIView和CALayer的選擇

細心的朋友不難發現,其實前面的2個效果不僅可以通過添加層來實現,還可以通過添加UIView來實現。比如,第1個紅色的層可以用一個UIView來實現,第2個顯示圖片的層可以用一個UIImageView來實現。?既然CALayer和UIView都能實現相同的顯示效果,那究竟該選擇誰好呢?

* 其實,對比CALayer,UIView多了一個事件處理的功能。也就是說,CALayer不能處理用戶的觸摸事件,而UIView可以

* 所以,如果顯示出來的東西需要跟用戶進行交互的話,用UIView;如果不需要跟用戶進行交互,用UIView或者CALayer都可以

* 當然,CALayer的性能會高一些,因為它少了事件處理的功能,更加輕量級

?

回到頂部

五、UIView和CALayer的其他關系

*?UIView可以通過subviews屬性訪問所有的子視圖,類似地,CALayer也可以通過sublayers屬性訪問所有的子層

*?UIView可以通過superview屬性訪問父視圖,類似地,CALayer也可以通過superlayer屬性訪問父層

* 下面再看一張UIView和CALayer的關系圖:

如果兩個UIView是父子關系,那么它們內部的CALayer也是父子關系。

轉載于:https://www.cnblogs.com/jameslbj/p/4290513.html

總結

以上是生活随笔為你收集整理的OC语言知识12的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲视频色图 | 中文久久乱码一区二区 | 亚洲人成在线播放 | 韩国av不卡 | 口爆吞精一区二区三区 | 97黄色网 | 欧洲性猛交 | 特黄一级大片 | 麻豆视频国产 | 91精品人妻一区二区三区果冻 | 97久久精品视频 | 宿舍女女闺蜜调教羞辱 | 夜夜嗨av一区二区三区网页 | 久精品国产 | 亚洲人成久久 | 欧美女优视频 | 又黄又爽的免费视频 | 国产精品久久国产精品99 | 给我免费观看片在线电影的 | 成人你懂的 | 欧美黄色特级片 | 亚洲日本三级 | 国产又粗又长又爽 | www.爱色av.com| 想要xx视频 | 黑人性高潮 | 欧美成人黄色小说 | 天堂精品一区 | 青青草97 | 国产乱码精品一区二三赶尸艳谈 | 日本乱码一区 | 欧美做爰性生交视频 | 最新视频在线观看 | 亚洲成人网在线播放 | 欧美日韩国产精品一区二区三区 | 日本免费色 | 与亲女洗澡时伦了毛片 | 日本xxx在线观看 | 熟妇人妻系列aⅴ无码专区友真希 | 视频在线 | 新婚夫妇白天啪啪自拍 | av鲁丝一区鲁丝二区鲁丝 | 超碰人人人人人人人 | 青青草在线视频免费观看 | 可以直接看的毛片 | 国产一区精品久久 | 亚洲一区二区三区午夜 | 国产黄色三级网站 | 一区二区高清在线观看 | 黄色99视频| 亚洲图片另类小说 | 国模无码视频一区二区三区 | 国产福利91精品一区二区三区 | 男女又爽又黄 | 国产日韩欧美成人 | 91看片视频 | 伊人999| 免费看三级黄色片 | 国产区亚洲区 | 黄色国产在线观看 | 国产精品免费网站 | 性xxxx视频播放免费 | 亚洲区一区二区三区 | 国产伦精品一区二区三区网站 | av色播 | 成都电影免费大全 | 狠狠爱亚洲 | 老熟女毛茸茸浓毛 | 亚洲欧美乱综合图片区小说区 | 手机看片1024久久 | av永久免费| 国产精品蜜臀 | 成人av播放 | 少妇高潮一区二区三区在线 | 校园春色亚洲色图 | 久久精品视频日本 | 亚洲AV成人无码久久 | 毛片www | 国内偷拍久久 | 久久久免费毛片 | 国产夜色精品一区二区av | 国产区精品区 | 91在线视频观看 | 超碰国产在线观看 | 蜜桃av噜噜一区二区三区网址 | 懂色av一区二区三区蜜臀 | 欧美亚洲视频在线观看 | 国产香蕉视频在线观看 | 亚洲啪| 欧美精品在线免费观看 | 给我看免费高清在线观看 | av不卡一区二区 | 国产麻豆91 | 亚洲蜜桃av | 亚洲一区h | 日韩人妻精品一区二区三区视频 | 午夜精品一区二区三区在线播放 | 影音先锋激情 | 人人干人人搞 |