線上教育系統開發中,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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 線上教育系統開發中,如何實現作業功能字型自定義?
- PG的非分割槽表線上轉分割槽表
- 基於tp開發的線上教育系統
- Java中實現流的分割槽Java
- 線上重定義方式將普通表修改為分割槽表
- HGDB的分割槽表實現SQL Server的分割槽檢視SQLServer
- 線上教育系統開發的新方向:職場教育
- 衢州線上教育系統,一個電話開啟學習新方式?
- Linux系統中分割槽是什麼?Linux系統分割槽方式有幾種?Linux
- Mysql表分割槽實現MySql
- Oracle分割槽表基礎運維-07增加分割槽(3列表分割槽)Oracle運維
- 線上教育系統如何實現盈利?揭秘背後的商業模式模式
- 一個開源的分散式線上教育系統分散式
- Oracle分割槽表基礎運維-04列表分割槽Oracle運維
- MySQL線上轉分割槽表(以及TiDB)MySqlTiDB
- Oracle12c:建立主分割槽、子分割槽,實現自動分割槽插入效果Oracle
- 萬嶽教育系統-線上教育直播原始碼的開發誤區原始碼
- iOS tableView 分割線左右邊距調整iOSView
- admin_move_table線上更改分割槽鍵
- 線上透過dd命令備份分割槽
- Oracle 12C新特性-線上把非分割槽錶轉為分割槽表Oracle
- oracle 線上重新定義,普通表改變分割槽表,分割槽表可以更改型別、分割槽欄位等Oracle型別
- 景德鎮線上教育系統官網:如何改變學習方式?
- 如何高效搭建線上教育系統?
- 遠端教育系統開發中的誤區
- 線上教育系統軟體架構架構
- Oracle 到 PostgreSQL參考分割槽實現OracleSQL
- TP FANS線上教育系統|慕課網|線上視訊|
- 線上教育平臺開發中,教學白板是如何實現的
- PostgreSQL LIST分割槽實現:繼承表+函式+觸發器。SQL繼承函式觸發器
- 分割槽表-實戰
- 搭建線上教育系統的核心步驟有哪些?
- 線上教育平臺開發中,作業功能中的圖片上傳是如何實現的
- PostgreSQL使用表繼承實現分割槽表SQL繼承
- 線上重定義與普通表改為分割槽表
- 教育系統開發的具體流程
- Hive中靜態分割槽和動態分割槽總結Hive
- 線上商城專案11-商品列表頁的排序實現排序