swift 分享share頁面封裝(功能按鈕不同)


關於分享功能的頁面應該有很多,寫這篇swift版本的分享頁面,根據不同模塊可能分享的功能按鈕不一樣,引言:

想必大家都使用微博右上角更多按鈕,會彈出如下的界面:

 在開發中,可能針對同一個app的不同按鈕,要分享的平台和功能按鈕選項是不同的,這就需要開發者在開發之前就要設計封裝好,此次根據項目本身進行封裝了一份,希望對大家有所幫助!

 一、概述

在封裝項目效果如下,里面的內容,可以自行在枚舉中添加(下面代碼會說到)- 

  1. 黃色內容是提示語,放在UILabel中
  2. 紅色內容是分享的平台,可以滾動,放在UICollectionView中
  3. 綠色內容是功能模塊,可以滾動,放在UICollectionView中
  4. 藍色內容是取消按鈕,放在UIButton中

對於上面的布局,估計很多人都會布局成功,重點講述一下,自己項目中怎么封裝出來不同模塊,分享頁面不一的情況!下面是代碼的主體結構:

 

 

二、詳解(附帶代碼)

 1. XYZShareEnum - 存放枚舉類型

XYShareEnum用於存放分享平台、功能按鈕以及使用場景內容和判斷!

1.1 首先看一下分享平台設置

如下圖:

通過這個枚舉設置分享平台,可以自行選擇設置分享的內容.

1.2 然后看功能選項按鈕

如下圖:

利用的同樣的方法結構,添加功能性按鈕選項,可以根據需求增加需要的功能按鈕,並導入圖片.

1.3 最后使用場景枚舉

上面是不同場景分享不同的第三方平台,如果功能性按鈕,分享的頁面也都不同,也可書寫類似的枚舉進行管理.basic代表基本的第三方選項;myItem代表是公司開發的其他app,分享到自己公司app上

 

2. XYZShareViewController - 布局以及頁面展示

XYZShareViewController 用於頁面布局展示,以及處理響應的點擊事件

首先定義tools,代表功能性按鈕選擇,存放XYZShareToolEnum的枚舉功能選項,type:用於存放平台的選擇,代表basic與myItem兩個選項,block:

clickItemHandle用於點擊某一個item.

 

上面的collectionView用於分享平台的展示,下面的toolsCollectionView存放的是功能性按鈕.

 

上面的convenience init方法用於接受使用場景,下面的類方法show,用於在適合彈出分享頁面的時候調用

 

在數據源方面處理的代碼如下:

用於顯示功能和平台展示的區別和賦值.

 

3. XYZShareInfo -分享內容回調

XYZShareInfo: 用於在UICollectionView中did事件處理,點擊某個Item分享內容

 

4. 使用方法 

 在ViewController中,點擊分享按鈕,彈框顯示,代碼如下:

發現函數返回時XYZShareInfo,在里面處理要分享的內容

 

上面就是公司項目中在不同場景使用不同分享頁面的封裝

代碼git:     https://github.com/zxy1829760/XYZShareTool

 希望對大家在項目中思路和解決問題有所幫助,謝謝🙏

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM