IOS用CGContextRef畫各種圖形(文字、圓、直線、弧線、矩形、扇形、橢圓、三角形、圓角矩形、貝塞爾曲線、圖片)...

首先了解一下CGContextRef:

An opaque type that represents a Quartz 2D drawing environment.

Graphics Context是圖形上下文,可以將其理解為一塊畫布,我們可以在上面進行繪畫操作,繪制完成后,將畫布放到我們的view中顯示即可,view看作是一個畫框.

自己學習時實現的demo,希望對大家有幫助,具體的實現看代碼,并有完美的注釋解釋,還有一些對我幫助的博文供大家參考。都在代碼里面。

看一下demo效果圖先:


自定義CustomView類,CustomView.h:

[cpp] view plaincopy
  1. #import?<UIKit/UIKit.h>??
  2. #import?<QuartzCore/QuartzCore.h>??
  3. #define?PI?3.14159265358979323846??
  4. @interface?CustomView?:?UIView??
  5. ??
  6. ??
  7. @end??

實現類CustomView.m:
[cpp] view plaincopy
  1. #import?"CustomView.h"??
  2. ??
  3. @implementation?CustomView??
  4. ??
  5. -?(id)initWithFrame:(CGRect)frame??
  6. {??
  7. ????self?=?[super?initWithFrame:frame];??
  8. ????if?(self)?{??
  9. ????}??
  10. ????return?self;??
  11. }??
  12. ??
  13. ??
  14. //?覆蓋drawRect方法,你可以在此自定義繪畫和動畫??
  15. -?(void)drawRect:(CGRect)rect??
  16. {??
  17. ????//An?opaque?type?that?represents?a?Quartz?2D?drawing?environment.??
  18. ????//一個不透明類型的Quartz?2D繪畫環境,相當于一個畫布,你可以在上面任意繪畫??
  19. ????CGContextRef?context?=?UIGraphicsGetCurrentContext();??
  20. ??????
  21. ????/*寫文字*/??
  22. ????CGContextSetRGBFillColor?(context,??1,?0,?0,?1.0);//設置填充顏色??
  23. ????UIFont??*font?=?[UIFont?boldSystemFontOfSize:15.0];//設置??
  24. ????[@"畫圓:"?drawInRect:CGRectMake(10,?20,?80,?20)?withFont:font];??
  25. ????[@"畫線及孤線:"?drawInRect:CGRectMake(10,?80,?100,?20)?withFont:font];??
  26. ????[@"畫矩形:"?drawInRect:CGRectMake(10,?120,?80,?20)?withFont:font];??
  27. ????[@"畫扇形和橢圓:"?drawInRect:CGRectMake(10,?160,?110,?20)?withFont:font];??
  28. ????[@"畫三角形:"?drawInRect:CGRectMake(10,?220,?80,?20)?withFont:font];??
  29. ????[@"畫圓角矩形:"?drawInRect:CGRectMake(10,?260,?100,?20)?withFont:font];??
  30. ????[@"畫貝塞爾曲線:"?drawInRect:CGRectMake(10,?300,?100,?20)?withFont:font];??
  31. ????[@"圖片:"?drawInRect:CGRectMake(10,?340,?80,?20)?withFont:font];??
  32. ??
  33. ????/*畫圓*/??
  34. ????//邊框圓??
  35. ????CGContextSetRGBStrokeColor(context,1,1,1,1.0);//畫筆線的顏色??
  36. ????CGContextSetLineWidth(context,?1.0);//線的寬度??
  37. ????//void?CGContextAddArc(CGContextRef?c,CGFloat?x,?CGFloat?y,CGFloat?radius,CGFloat?startAngle,CGFloat?endAngle,?int?clockwise)1 弧度=180°/π?(≈57.3°)?度=弧度×180°/π?360°=360×π/180?=2π?弧度???
  38. ????//?x,y為圓點坐標,radius半徑,startAngle為開始的弧度,endAngle為?結束的弧度,clockwise?0為順時針,1為逆時針。??
  39. ????CGContextAddArc(context,?100,?20,?15,?0,?2*PI,?0);?//添加一個圓??
  40. ????CGContextDrawPath(context,?kCGPathStroke);?//繪制路徑??
  41. ??????
  42. ????//填充圓,無邊框??
  43. ????CGContextAddArc(context,?150,?30,?30,?0,?2*PI,?0);?//添加一個圓??
  44. ????CGContextDrawPath(context,?kCGPathFill);//繪制填充??
  45. ??????
  46. ????//畫大圓并填充顏??
  47. ????UIColor*aColor?=?[UIColor?colorWithRed:1?green:0.0?blue:0?alpha:1];??
  48. ????CGContextSetFillColorWithColor(context,?aColor.CGColor);//填充顏色??
  49. ????CGContextSetLineWidth(context,?3.0);//線的寬度??
  50. ????CGContextAddArc(context,?250,?40,?40,?0,?2*PI,?0);?//添加一個圓??
  51. ????//kCGPathFill填充非零繞數規則,kCGPathEOFill表示用奇偶規則,kCGPathStroke路徑,kCGPathFillStroke路徑填充,kCGPathEOFillStroke表示描線,不是填充??
  52. ????CGContextDrawPath(context,?kCGPathFillStroke);?//繪制路徑加填充??
  53. ??????
  54. ????/*畫線及孤線*/??
  55. ????//畫線??
  56. ????CGPoint?aPoints[2];//坐標點??
  57. ????aPoints[0]?=CGPointMake(100,?80);//坐標1??
  58. ????aPoints[1]?=CGPointMake(130,?80);//坐標2??
  59. ????//CGContextAddLines(CGContextRef?c,?const?CGPoint?points[],size_t?count)??
  60. ????//points[]坐標數組,和count大小??
  61. ????CGContextAddLines(context,?aPoints,?2);//添加線??
  62. ????CGContextDrawPath(context,?kCGPathStroke);?//根據坐標繪制路徑??
  63. ??????
  64. ????//畫笑臉弧線??
  65. ????//左??
  66. ????CGContextSetRGBStrokeColor(context,?0,?0,?1,?1);//改變畫筆顏色??
  67. ????CGContextMoveToPoint(context,?140,?80);//開始坐標p1??
  68. ????//CGContextAddArcToPoint(CGContextRef?c,?CGFloat?x1,?CGFloat?y1,CGFloat?x2,?CGFloat?y2,?CGFloat?radius)??
  69. ????//x1,y1跟p1形成一條線的坐標p2,x2,y2結束坐標跟p3形成一條線的p3,radius半徑,注意,?需要算好半徑的長度,??
  70. ????CGContextAddArcToPoint(context,?148,?68,?156,?80,?10);??
  71. ????CGContextStrokePath(context);//繪畫路徑??
  72. ??????
  73. ????//右??
  74. ????CGContextMoveToPoint(context,?160,?80);//開始坐標p1??
  75. ????//CGContextAddArcToPoint(CGContextRef?c,?CGFloat?x1,?CGFloat?y1,CGFloat?x2,?CGFloat?y2,?CGFloat?radius)??
  76. ????//x1,y1跟p1形成一條線的坐標p2,x2,y2結束坐標跟p3形成一條線的p3,radius半徑,注意,?需要算好半徑的長度,??
  77. ????CGContextAddArcToPoint(context,?168,?68,?176,?80,?10);??
  78. ????CGContextStrokePath(context);//繪畫路徑??
  79. ??????
  80. ????//右??
  81. ????CGContextMoveToPoint(context,?150,?90);//開始坐標p1??
  82. ????//CGContextAddArcToPoint(CGContextRef?c,?CGFloat?x1,?CGFloat?y1,CGFloat?x2,?CGFloat?y2,?CGFloat?radius)??
  83. ????//x1,y1跟p1形成一條線的坐標p2,x2,y2結束坐標跟p3形成一條線的p3,radius半徑,注意,?需要算好半徑的長度,??
  84. ????CGContextAddArcToPoint(context,?158,?102,?166,?90,?10);??
  85. ????CGContextStrokePath(context);//繪畫路徑??
  86. ????//注,如果還是沒弄明白怎么回事,請參考:http://donbe.blog.163.com/blog/static/138048021201052093633776/??
  87. ??????
  88. ????/*畫矩形*/??
  89. ????CGContextStrokeRect(context,CGRectMake(100,?120,?10,?10));//畫方框??
  90. ????CGContextFillRect(context,CGRectMake(120,?120,?10,?10));//填充框??
  91. ????//矩形,并填棄顏色??
  92. ????CGContextSetLineWidth(context,?2.0);//線的寬度??
  93. ????aColor?=?[UIColor?blueColor];//blue藍色??
  94. ????CGContextSetFillColorWithColor(context,?aColor.CGColor);//填充顏色??
  95. ????aColor?=?[UIColor?yellowColor];??
  96. ????CGContextSetStrokeColorWithColor(context,?aColor.CGColor);//線框顏色??
  97. ????CGContextAddRect(context,CGRectMake(140,?120,?60,?30));//畫方框??
  98. ????CGContextDrawPath(context,?kCGPathFillStroke);//繪畫路徑??
  99. ??????
  100. ????//矩形,并填棄漸變顏色??
  101. ????//關于顏色參考http://blog.sina.com.cn/s/blog_6ec3c9ce01015v3c.html??
  102. ????//http://blog.csdn.net/reylen/article/details/8622932??
  103. ????// 第一種填充方式,第一種方式必須導入類庫quartcore并#import?<QuartzCore/QuartzCore.h>,這個就 不屬于在context上畫,而是將層插入到view層上面。那么這里就設計到Quartz?Core?圖層編程了。??
  104. ????CAGradientLayer?*gradient1?=?[CAGradientLayer?layer];??
  105. ????gradient1.frame?=?CGRectMake(240,?120,?60,?30);??
  106. ????gradient1.colors?=?[NSArray?arrayWithObjects:(id)[UIColor?whiteColor].CGColor,??
  107. ????????????????????????(id)[UIColor?grayColor].CGColor,??
  108. ????????????????????????(id)[UIColor?blackColor].CGColor,??
  109. ????????????????????????(id)[UIColor?yellowColor].CGColor,??
  110. ????????????????????????(id)[UIColor?blueColor].CGColor,??
  111. ????????????????????????(id)[UIColor?redColor].CGColor,??
  112. ????????????????????????(id)[UIColor?greenColor].CGColor,??
  113. ????????????????????????(id)[UIColor?orangeColor].CGColor,??
  114. ????????????????????????(id)[UIColor?brownColor].CGColor,nil];??
  115. ????[self.layer?insertSublayer:gradient1?atIndex:0];??
  116. ????//第二種填充方式???
  117. ????CGColorSpaceRef?rgb?=?CGColorSpaceCreateDeviceRGB();??
  118. ????CGFloat?colors[]?=??
  119. ????{??
  120. ????????1,1,1,?1.00,??
  121. ????????1,1,0,?1.00,??
  122. ????????1,0,0,?1.00,??
  123. ????????1,0,1,?1.00,??
  124. ????????0,1,1,?1.00,??
  125. ????????0,1,0,?1.00,??
  126. ????????0,0,1,?1.00,??
  127. ????????0,0,0,?1.00,??
  128. ????};??
  129. ????CGGradientRef?gradient?=?CGGradientCreateWithColorComponents??
  130. ????(rgb,?colors,?NULL,?sizeof(colors)/(sizeof(colors[0])*4));//形成梯形,漸變的效果???
  131. ????CGColorSpaceRelease(rgb);??
  132. ????//畫線形成一個矩形??
  133. ????//CGContextSaveGState與CGContextRestoreGState的作用??
  134. ????/*?
  135. ?????CGContextSaveGState 函數的作用是將當前圖形狀態推入堆棧。之后,您對圖形狀態所做的修改會影響隨后的描畫操作,但不影響存儲在堆棧中的拷貝。在修改完成后,您可以通過 CGContextRestoreGState函數把堆棧頂部的狀態彈出,返回到之前的圖形狀態。這種推入和彈出的方式是回到之前圖形狀態的快速方法,避 免逐個撤消所有的狀態修改;這也是將某些狀態(比如裁剪路徑)恢復到原有設置的唯一方式。?
  136. ?????*/??
  137. ????CGContextSaveGState(context);??
  138. ????CGContextMoveToPoint(context,?220,?90);??
  139. ????CGContextAddLineToPoint(context,?240,?90);??
  140. ????CGContextAddLineToPoint(context,?240,?110);??
  141. ????CGContextAddLineToPoint(context,?220,?110);??
  142. ????CGContextClip(context);//context裁剪路徑,后續操作的路徑??
  143. ????//CGContextDrawLinearGradient(CGContextRef?context,CGGradientRef?gradient,?CGPoint?startPoint,?CGPoint?endPoint,CGGradientDrawingOptions?options)??
  144. ????//gradient漸變顏色,startPoint開始漸變的起始位置,endPoint結束坐標,options開始坐標之前or開始之后開始漸變??
  145. ????CGContextDrawLinearGradient(context,?gradient,CGPointMake??
  146. ????????????????????????????????(220,90)?,CGPointMake(240,110),??
  147. ????????????????????????????????kCGGradientDrawsAfterEndLocation);??
  148. ????CGContextRestoreGState(context);//?恢復到之前的context??
  149. ??????
  150. ????//再寫一個看看效果??
  151. ????CGContextSaveGState(context);??
  152. ????CGContextMoveToPoint(context,?260,?90);??
  153. ????CGContextAddLineToPoint(context,?280,?90);??
  154. ????CGContextAddLineToPoint(context,?280,?100);??
  155. ????CGContextAddLineToPoint(context,?260,?100);??
  156. ????CGContextClip(context);//裁剪路徑??
  157. ????//說白了,開始坐標和結束坐標是控制漸變的方向和形狀??
  158. ????CGContextDrawLinearGradient(context,?gradient,CGPointMake??
  159. ????????????????????????????????(260,?90)?,CGPointMake(260,?100),??
  160. ????????????????????????????????kCGGradientDrawsAfterEndLocation);??
  161. ????CGContextRestoreGState(context);//?恢復到之前的context??
  162. ??????
  163. ????//下面再看一個顏色漸變的圓??
  164. ????CGContextDrawRadialGradient(context,?gradient,?CGPointMake(300,?100),?0.0,?CGPointMake(300,?100),?10,?kCGGradientDrawsBeforeStartLocation);??
  165. ??????
  166. ????/*畫扇形和橢圓*/??
  167. ????//畫扇形,也就畫圓,只不過是設置角度的大小,形成一個扇形??
  168. ????aColor?=?[UIColor?colorWithRed:0?green:1?blue:1?alpha:1];??
  169. ????CGContextSetFillColorWithColor(context,?aColor.CGColor);//填充顏色??
  170. ????//以10為半徑圍繞圓心畫指定角度扇形??
  171. ????CGContextMoveToPoint(context,?160,?180);??
  172. ????CGContextAddArc(context,?160,?180,?30,??-60?*?PI?/?180,?-120?*?PI?/?180,?1);??
  173. ????CGContextClosePath(context);??
  174. ????CGContextDrawPath(context,?kCGPathFillStroke);?//繪制路徑??
  175. ??
  176. ????//畫橢圓??
  177. ????CGContextAddEllipseInRect(context,?CGRectMake(160,?180,?20,?8));?//橢圓??
  178. ????CGContextDrawPath(context,?kCGPathFillStroke);??
  179. ??????
  180. ????/*畫三角形*/??
  181. ????//只要三個點就行跟畫一條線方式一樣,把三點連接起來??
  182. ????CGPoint?sPoints[3];//坐標點??
  183. ????sPoints[0]?=CGPointMake(100,?220);//坐標1??
  184. ????sPoints[1]?=CGPointMake(130,?220);//坐標2??
  185. ????sPoints[2]?=CGPointMake(130,?160);//坐標3??
  186. ????CGContextAddLines(context,?sPoints,?3);//添加線??
  187. ????CGContextClosePath(context);//封起來??
  188. ????CGContextDrawPath(context,?kCGPathFillStroke);?//根據坐標繪制路徑??
  189. ??????
  190. ????/*畫圓角矩形*/??
  191. ????float?fw?=?180;??
  192. ????float?fh?=?280;??
  193. ??????
  194. ????CGContextMoveToPoint(context,?fw,?fh-20);??//?開始坐標右邊開始??
  195. ????CGContextAddArcToPoint(context,?fw,?fh,?fw-20,?fh,?10);??//?右下角角度??
  196. ????CGContextAddArcToPoint(context,?120,?fh,?120,?fh-20,?10);?//?左下角角度??
  197. ????CGContextAddArcToPoint(context,?120,?250,?fw-20,?250,?10);?//?左上角??
  198. ????CGContextAddArcToPoint(context,?fw,?250,?fw,?fh-20,?10);?//?右上角??
  199. ????CGContextClosePath(context);??
  200. ????CGContextDrawPath(context,?kCGPathFillStroke);?//根據坐標繪制路徑??
  201. ??????
  202. ????/*畫貝塞爾曲線*/??
  203. ????//二次曲線??
  204. ????CGContextMoveToPoint(context,?120,?300);//設置Path的起點??
  205. ????CGContextAddQuadCurveToPoint(context,190,?310,?120,?390);//設置貝塞爾曲線的控制點坐標和終點坐標??
  206. ????CGContextStrokePath(context);??
  207. ????//三次曲線函數??
  208. ????CGContextMoveToPoint(context,?200,?300);//設置Path的起點??
  209. ????CGContextAddCurveToPoint(context,250,?280,?250,?400,?280,?300);//設置貝塞爾曲線的控制點坐標和控制點坐標終點坐標??
  210. ????CGContextStrokePath(context);??
  211. ??????
  212. ??????
  213. ????/*圖片*/??
  214. ????UIImage?*image?=?[UIImage?imageNamed:@"apple.jpg"];??
  215. ????[image?drawInRect:CGRectMake(60,?340,?20,?20)];//在坐標中畫出圖片??
  216. //????[image?drawAtPoint:CGPointMake(100,?340)];//保持圖片大小在point點開始畫圖片,可以把注釋去掉看看??
  217. ????CGContextDrawImage(context,?CGRectMake(100,?340,?20,?20),?image.CGImage);//使用這個使圖片上下顛倒了,參考http://blog.csdn.net/koupoo/article/details/8670024??
  218. ??????
  219. //????CGContextDrawTiledImage(context,?CGRectMake(0,?0,?20,?20),?image.CGImage);//平鋪圖??
  220. ??
  221. }??
  222. ??
  223. ??
  224. @end??

用法:
[cpp] view plaincopy
  1. CustomView?*customView?=?[[CustomView?alloc]initWithFrame:CGRectMake(0,?0,?320,?self.view.frame.size.height)];??
  2. ????[self.view?addSubview:customView];??

ok,完成。

大家如果看過我的其它博客,會發現,這遍博客跟我的某一片博客很像,沒錯,就是http://blog.csdn.net/rhljiayou/article/details/7212620

當年寫andriod的時候寫的一遍博客。

請大家尊重一下我的勞動成功,轉載請注明原創地址!

http://blog.csdn.net/rhljiayou/article/details/9919713

版權聲明:本文為博主原創文章,未經博主允許不得轉載。

轉載于:https://www.cnblogs.com/Free-Thinker/p/4946695.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/256480.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/256480.shtml
英文地址,請注明出處:http://en.pswp.cn/news/256480.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

eclipse maven jetty插件方式啟動項目

2019獨角獸企業重金招聘Python工程師標準>>> 1. 2.點擊run即可啟動項目 參考:maven命令具體含義請自行百度.例子:maven clean的作用 / maven djetty 轉載于:https://my.oschina.net/u/3146772/blog/1576710

AWS S3 Windows系統下的文件夾上傳基于python

AWS S3 上傳文件&#xff0c;基于cmd命令行發現無法上傳文件夾&#xff0c;只能上傳單個文件&#xff0c;不知道是我能力不行還是什么原因&#xff0c;如果有大佬了解的可以在下面評論下! 一、環境配置 1.win10 X64&#xff1b; 2.awscli 1.18.91 3.python&#xff08;程序…

51nod 1004 【快速冪】

思路&#xff1a; 掐住最后一位&#xff0c;快速冪一發就好了 #include<cstdio> #include <map> #include<iostream> #include<string.h> #include<algorithm> using namespace std;typedef __int64 LL;int cal(int g,int x) {int ans1;while(g…

ANSYS——桿單元簡介與示例(含新版本2019版本桿實常數設置、ANSYS help的使用、單元列表使用的舉例)

目錄 桿的一些介紹 問題描述: 求解步驟: 一、設置研究問題為靜力學結構問題

Maya 學習資料

羅其勝3d角色強化 CGwhat-Maya變形金剛擎天柱建模教程 Pixar in the box - khan academy Siggraph歷屆優秀動畫 CG軟件發展史&#xff1a;MAYA動畫十年歷程 maya 2014奧迪汽車模型制作教程 &#xff08;yj6k&#xff09; 海賊王路飛建模教程高清全集 轉載于:https://www.cnblog…

windows系統環境變量過長解決方案(PATH too long installer unable to modify Path)

在按照官方文檔安裝PCL庫時&#xff0c;發現如下danteng的錯誤&#xff0c;內心極度崩潰&#xff01;以前也遇到過&#xff0c;當時暫時解決了該問題&#xff0c;現在又遇到了重新解決一次&#xff0c;為了方便以后遇到該問題時不再不知所措&#xff0c;現做個筆記&#xff01;…

jQuery插件-輕量圖片輪換-UISlide2

UISlide 的不同效果展現&#xff1a;運行代碼 本文轉自懶得安分博客園博客&#xff0c;原文鏈接&#xff1a;XXXXXXXX&#xff0c;如需轉載請自行聯系原作者

劍指Offer_61_序列化二叉樹

題目描述 請實現兩個函數&#xff0c;分別用來序列化和反序列化二叉樹 解題思路 使用前序遍歷&#xff0c;將遇到的結點添加到字符串中&#xff0c;遇到null則將一個#添加要序列化字符串中。反序列化時&#xff0c;每次讀取根結點&#xff0c;然后讀取其左結點&#xff0c;遇到…

ANSYS——后處理中單元表(ELEMENT table)的作用、創建、使用

目錄 單元表的作用 1、訪問無法繪制的數據 2、數據的數據源 單元表的創建

久違的反省,容忍現在的自己

距離上一次寫的隨筆剛好是一個月了&#xff0c;標題還是不知道寫什么好&#xff0c;也可以說這一個月來自己能夠拿出來稱道的東西實在是少之又少吧。更多的感受就是很多時候都是在搬磚&#xff0c;盡管這一個月來學習的東西實事求是地說不是很難的。最大的問題還是解決問題的思…

基于SSL的mysql(MariaDB)主從復制

一、前言 備份數據庫是生產環境中的首要任務&#xff0c;重中之重&#xff0c;有時候不得不通過網絡進行數據庫的復制&#xff0c;這樣就需要保證數據在網絡傳輸過程中的安全性&#xff0c;因此使用基于SSL的復制會大加強數據的安全性 二、準備工作 1、主從服務器時間同步 12[r…

ANSYS——分析實例,平面對稱問題

目錄 一、問題描述 二、問題分析 三、單元類型設置、材料屬性設置 四、建模

Ubuntu16.04安裝nginx

//ubuntu //安裝nginxcurl -LJO http://nginx.org/download/nginx-1.10.1.tar.gz tar zxvf nginx-1.10.1.tar.gz cd nginx-1.10.1.tar.gz sudo apt install gcc autoconf automake build-essential sudo apt-get install libpcre3 libpcre3-dev sudo apt-get install openssl s…

【數據結構作業—02】雙鏈表

2.實現下述要求的Locate運算的函數 問題描述 設有一個帶表頭結點的雙向鏈表L&#xff0c;每個結點有4個數據成員&#xff1a;指向前驅結點的指針prior、指向后繼結點的指針next、存放數據的成員data和訪問頻度freq。所有結點的freq初始時都為0。每當在鏈表上進行一次Locate (L,…

ANSYS——對稱模型對稱邊界的確定以及對稱邊界的約束施加問題

目錄 一、什么是對稱模型(對稱模型的特性)? 二、利用模型的對稱特性的目的?

徹底明白Java語言中的IO系統

ava的核心庫java.io提供了全面的IO接口&#xff0c;包括&#xff1a;文件讀寫&#xff0c;標準設備輸出等等。Java中IO是以流為基礎進行輸入輸出的&#xff0c;所有數據被串行化寫入輸出流&#xff0c;或者從輸入流讀入。在具體使用中很多初學者對Java.io包的使用非常含糊&…

第9章 接口

1、抽象類&#xff1a; 包含抽象方法的類叫抽象類&#xff0c;如果一個類包含一個或多個抽象方法(abstract void f();)&#xff0c;該類必須被限定為抽象的&#xff0c;否則編譯出錯。 1、抽象類不能被實例化&#xff0c;實例化的工作應該交由它的子類來完成&#xff0c;它只需…

用node-webkit(NW.js)創建桌面程序

以往寫windows桌面程序需要用MFC、C#之類的技術&#xff0c;那么如果你只會web開發技術呢&#xff1f;或者說你有一個網站&#xff0c;但是你想把你的網站打包成一個桌面應用程序&#xff0c;該如何做呢&#xff1f; 答案就是用node-webkit這個開源框架&#xff0c;他封裝了web…

一頭扎進Node系列 - 目錄

前言 本系列是屬于初級教程。博主我也還只是一個node的新兵蛋子&#xff0c;想通過學習官網的API文檔&#xff0c;慢慢的打好Node基礎。當然后期這系列文檔會慢慢完善&#xff0c;并且會添加一些項目實戰中遇到的一些問題以及解決方案&#xff01;如果你也是初學者&#xff0c;…

ANSYS——“There is at least 1 small equation solver pivot term”問題的解決辦法

目錄 問題出現的原因 問題解決辦法 1、根據提示對節點進行約束的添加