線上教育系統開發中,tableview列表分割槽的實現方式
在各類線上教育系統中,往往會包含知識付費模組,這些模組中,網課的章節通常會以列表的方式展現。那麼列表中的分割槽構成是如何透過程式碼實現的呢?接下來,小編就帶大家看看,在 IOS版本的 線上教育系統開發 中,tableview列表分割槽的實現方式 。
效果圖:
具體實現步驟:
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath { // 圓角弧度半徑 CGFloat cornerRadius = 7.5f; // 設定cell的背景色為透明,如果不設定這個的話,則原來的背景色不會被覆蓋 cell.backgroundColor = UIColor.clearColor; // 建立一個shapeLayer CAShapeLayer *layer = [[CAShapeLayer alloc] init]; CAShapeLayer *backgroundLayer = [[CAShapeLayer alloc] init]; //顯示選中 // 建立一個可變的影像Path控制程式碼,該路徑用於儲存繪圖資訊 CGMutablePathRef pathRef = CGPathCreateMutable(); // 獲取cell的size // 第一個引數,是整個 cell 的 bounds, 第二個引數是距左右兩端的距離,第三個引數是距上下兩端的距離 CGRect bounds = CGRectInset(cell.bounds, 0, 0); // CGRectGetMinY:返回物件頂點座標 // CGRectGetMaxY:返回物件底點座標 // CGRectGetMinX:返回物件左邊緣座標 // CGRectGetMaxX:返回物件右邊緣座標 // CGRectGetMidX: 返回物件中心點的X座標 // CGRectGetMidY: 返回物件中心點的Y座標 // 這裡要判斷分組列表中的第一行,每組section的第一行,每組section的中間行 // CGPathAddRoundedRect(pathRef, nil, bounds, cornerRadius, cornerRadius); if (indexPath.row == 0) { // 初始起點為cell的左下角座標 CGPathMoveToPoint(pathRef, nil, CGRectGetMinX(bounds), CGRectGetMaxY(bounds)); // 起始座標為左下角,設為p,(CGRectGetMinX(bounds), CGRectGetMinY(bounds))為左上角的點,設為p1(x1,y1),(CGRectGetMidX(bounds), CGRectGetMinY(bounds))為頂部中點的點,設為p2(x2,y2)。然後連線p1和p2為一條直線l1,連線初始點p到p1成一條直線l,則在兩條直線相交處繪製弧度為r的圓角。 CGPathAddArcToPoint(pathRef, nil, CGRectGetMinX(bounds), CGRectGetMinY(bounds), CGRectGetMidX(bounds), CGRectGetMinY(bounds), cornerRadius); CGPathAddArcToPoint(pathRef, nil, CGRectGetMaxX(bounds), CGRectGetMinY(bounds), CGRectGetMaxX(bounds), CGRectGetMidY(bounds), cornerRadius); // 終點座標為右下角座標點,把繪圖資訊都放到路徑中去,根據這些路徑就構成了一塊區域了 CGPathAddLineToPoint(pathRef, nil, CGRectGetMaxX(bounds), CGRectGetMaxY(bounds)); } else if (indexPath.row == [tableView numberOfRowsInSection:indexPath.section]-1) { // 初始起點為cell的左上角座標 CGPathMoveToPoint(pathRef, nil, CGRectGetMinX(bounds), CGRectGetMinY(bounds)); CGPathAddArcToPoint(pathRef, nil, CGRectGetMinX(bounds), CGRectGetMaxY(bounds), CGRectGetMidX(bounds), CGRectGetMaxY(bounds), cornerRadius); CGPathAddArcToPoint(pathRef, nil, CGRectGetMaxX(bounds), CGRectGetMaxY(bounds), CGRectGetMaxX(bounds), CGRectGetMidY(bounds), cornerRadius); // 新增一條直線,終點座標為右下角座標點並放到路徑中去 CGPathAddLineToPoint(pathRef, nil, CGRectGetMaxX(bounds), CGRectGetMinY(bounds)); } else { CGPathMoveToPoint(pathRef, nil, CGRectGetMinX(bounds), CGRectGetMinY(bounds)); CGPathAddArcToPoint(pathRef, nil, CGRectGetMinX(bounds), CGRectGetMaxY(bounds), CGRectGetMidX(bounds), CGRectGetMaxY(bounds), 0); CGPathAddArcToPoint(pathRef, nil, CGRectGetMaxX(bounds), CGRectGetMaxY(bounds), CGRectGetMaxX(bounds), CGRectGetMidY(bounds), 0); CGPathAddLineToPoint(pathRef, nil, CGRectGetMaxX(bounds), CGRectGetMinY(bounds)); } // 把已經繪製好的可變影像路徑賦值給圖層,然後圖層根據這影像path進行影像渲染render
以上,就是 IOS版本的 線上教育系統開發 中,tableview列表分割槽的實現方式 。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69968464/viewspace-2698086/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL分割槽的實現方式MySql
- 線上教育系統開發中,如何實現作業功能字型自定義?
- postgresql分割槽表實現方式SQL
- 基於tp開發的線上教育系統
- Java中實現流的分割槽Java
- 線上教育系統開發的新方向:職場教育
- 帶default分割槽的列表分割槽表的擴充套件套件
- (18)mysql 中的分割槽(開發篇完)MySql
- HGDB的分割槽表實現SQL Server的分割槽檢視SQLServer
- 遠端教育系統開發中的誤區
- MySQL 分割槽表 partition線上修改分割槽欄位MySql
- Mysql表分割槽實現MySql
- Redis 分割槽實現原理Redis
- 萬嶽教育系統-線上教育直播原始碼的開發誤區原始碼
- 一個開源的分散式線上教育系統分散式
- Oracle分割槽表基礎運維-07增加分割槽(3列表分割槽)Oracle運維
- oracle list partition列表分割槽(一)Oracle
- Oracle分割槽表基礎運維-04列表分割槽Oracle運維
- ORACLE 11G分割槽表新功能:列表--範圍分割槽Oracle
- Oracle12c:建立主分割槽、子分割槽,實現自動分割槽插入效果Oracle
- Linux系統中分割槽是什麼?Linux系統分割槽方式有幾種?Linux
- 【Oracle】利用線上重定義的方式改變普通表為分割槽表Oracle
- iOS專案開發實戰——學會使用TableView列表控制元件(一)iOSView控制元件
- iOS專案開發實戰——學會使用TableView列表控制元件(二)iOSView控制元件
- 教育系統開發的具體流程
- 以微擎版教育系統開發為例,如何實現redis快取Redis快取
- Oracle 12C 新特性之表分割槽或子分割槽的線上遷移Oracle
- Linux系統中管理Swap分割槽Linux
- oracle實用sql(14)--查詢分割槽表的分割槽列和子分割槽列OracleSQL
- 教育系統開發中的一些技術問題解析
- 面試官:Redis中列表的內部實現方式是什麼?面試Redis
- Oracle 到 PostgreSQL參考分割槽實現OracleSQL
- Spark開發-RDD分割槽重新劃分Spark
- 【實驗】【PARTITION】RANGE分割槽表合併分割槽
- 【實驗】【PARTITION】RANGE分割槽表增加分割槽
- 【實驗】【PARTITION】RANGE分割槽表刪除分割槽
- windows8系統如何實現簡單無損分割槽Windows
- 如何查詢分割槽表的分割槽及子分割槽