最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Swift實現多個TableView側滑與切換效果

 更新時間:2017年11月30日 16:01:30   作者:乞力馬扎羅的雪雪  
這篇文章主要為大家詳細介紹了Swift實現多個TableView側滑與切換效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下

在Android中我們常常使用ListView來表示列表,來顯示類似的呈現列表樣式的結果。來到iOS中,這種控件稱之為TableView。這里我們將會通過使用ScrollView和TableView結合的方式來實現可以側滑顯示的列表,這將會大大提高用戶體驗。先看一下實現效果:

。

。


具體實現步驟如下:

(1)創(chuàng)建一個iOS項目,Language選擇Swift,然后在Main.storyboard中拖入一個ScrollView,即滾動控件,界面設計如圖:

。

(2)然后拖動控件綁定到代碼中:

@IBOutlet weak var dynamicScrollView: UIScrollView! 

(3)我將會在一個ScrollView中實現三個TableView,三個列表可以通過手指的左右滑動進行切換,一些變量定義如下:

var tableView11:UITableView = UITableView() 
var tableView22:UITableView = UITableView() 
var tableView33:UITableView = UITableView() 
 
var cell1 = UITableViewCell() 
var cell2 = UITableViewCell() 
var cell3 = UITableViewCell() 

(4)然后在viewDidLoad()中設置委托和數據源,同時該類要實現以下接口:UIScrollViewDelegate,UITableViewDelegate,UITableViewDataSource

override func viewDidLoad() { 
  super.viewDidLoad() 
 
  tableView11.delegate = self 
  tableView11.dataSource = self 
   
  tableView22.delegate = self 
  tableView22.dataSource = self 
   
  tableView33.delegate = self 
  tableView33.dataSource = self 
   
  dynamicScroll() 
  initCustomTableView() 
} 

(5)實現dynamicScroll()方法,該方法是對ScrollView控件的滾動進行控制,同時把三個TableView加入到ScrollView中:

func dynamicScroll(){ //動態(tài)信息的滾動; 
  let tableW:CGFloat = self.dynamicScrollView.frame.size.width; 
  let tableH:CGFloat = self.dynamicScrollView.frame.size.height; 
  var tableY:CGFloat = 0; 
  var totalCount:NSInteger = 3;//只有三列; 
 
    var tableView1:UITableView = UITableView(); 
    var tableView2:UITableView = UITableView(); 
    var tableView3:UITableView = UITableView(); 
   
    tableView11.frame = CGRectMake(CGFloat(0) * tableW, tableY, tableW, tableH); 
    tableView22.frame = CGRectMake(CGFloat(1) * tableW, tableY, tableW, tableH); 
    tableView33.frame = CGRectMake(CGFloat(2) * tableW, tableY, tableW, tableH); 
     
    dynamicScrollView.addSubview(tableView11); 
    dynamicScrollView.addSubview(tableView22); 
    dynamicScrollView.addSubview(tableView33); 
   
  let contentW:CGFloat = tableW * CGFloat(totalCount);//這個表示整個ScrollView的長度; 
  dynamicScrollView.contentSize = CGSizeMake(contentW, 0); 
  dynamicScrollView.pagingEnabled = true; 
  dynamicScrollView.delegate = self; 
   
} 

(6)實現initCustomTableView()方法,該方法是對TableView的中的Cell設置ID號,用來標識不同的TableView :

func initCustomTableView(){  //初始化動態(tài)信息中的TableView 
   
  tableView11.registerClass(UITableViewCell.self, forCellReuseIdentifier:"cell1") 
  tableView22.registerClass(UITableViewCell.self, forCellReuseIdentifier:"cell2") 
  tableView33.registerClass(UITableViewCell.self, forCellReuseIdentifier:"cell3") 
} 

(7)最后實現UITableViewDataSource中的兩個必須實現的方法,是對三個TableView的數據源將進行設置:需要顯示的內容可以在這里進行添加:

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int{ 
 
 return 5 //返回TableView的Cell數量,可以動態(tài)設置; 
} 
 
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell{ 
  
 var cell = UITableViewCell() 
  
 switch tableView { 
  
 case tableView11: 
  cell1 = tableView11.dequeueReusableCellWithIdentifier("cell1") as! UITableViewCell 
  cell1.textLabel!.text = String(format:"昨天") 
  cell = cell1 
  break 
 
 case tableView22: 
  cell2 = tableView22.dequeueReusableCellWithIdentifier("cell2") as! UITableViewCell 
  cell2.textLabel!.text = String(format:"今天") 
  cell = cell2 
 
  break 
   
 case tableView33: 
  cell3 = tableView33.dequeueReusableCellWithIdentifier("cell3") as! UITableViewCell 
  cell3.textLabel!.text = String(format:"明天") 
  cell = cell3 
 
  break 
   
 default: 
  break 
 } 
  
 return cell 
} 

(8)最后運行程序,就可以實現本文開頭的多個TableView在ScrollView中通過側滑就可以切換的效果,雖然屏幕大小有限,我們可以通過視圖的切換顯示豐富的內容。

在iOS的開發(fā)中,TableView和ScrollView是兩個最為常用,使用最為靈活的控件,必須要好好掌握。

github主頁:https://github.com/chenyufeng1991  。歡迎大家訪問!

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • SpringBoot3.0集成Redis緩存的實現示例

    SpringBoot3.0集成Redis緩存的實現示例

    緩存就是一個存儲器,常用 Redis作為緩存數據庫,本文主要介紹了SpringBoot3.0集成Redis緩存的實現示例,具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • Swift自動調整視圖布局AutoLayout和AutoresizingMask功能詳解

    Swift自動調整視圖布局AutoLayout和AutoresizingMask功能詳解

    這篇文章主要為大家介紹了Swift自動調整視圖布局AutoLayout和AutoresizingMask功能及使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06
  • Swift中static和class關鍵字的深入講解

    Swift中static和class關鍵字的深入講解

    這篇文章主要給大家介紹了關于Swift中static和class關鍵字的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者使用Java具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-03-03
  • Swift條件判斷中逗號的使用方法示例

    Swift條件判斷中逗號的使用方法示例

    判斷語句是我們日常開發(fā)經常會遇到的一個功能,下面這篇文章主要給大家介紹了關于Swift條件判斷中逗號的使用方法,文中給出了詳細的示例代碼供大家參考學習,需要的朋友們下面隨著小編來一起學習學習吧。
    2017-10-10
  • Swift的開發(fā)環(huán)境搭建以及基本語法詳解

    Swift的開發(fā)環(huán)境搭建以及基本語法詳解

    這篇文章主要介紹了Swift的開發(fā)環(huán)境搭建以及基本語法詳解,是Swift入門學習中的基礎知識,需要的朋友可以參考下
    2015-11-11
  • 深入解析Swift語言編程中的可選鏈

    深入解析Swift語言編程中的可選鏈

    這篇文章主要介紹了深入解析Swift語言編程中的可選鏈,是Swift入門學習中的基礎知識,需要的朋友可以參考下
    2015-11-11
  • 程序遷移到swift 3.0的一些實用技巧

    程序遷移到swift 3.0的一些實用技巧

    Swift項目為適配iOS10,無奈只能更新Xcode 8 ,可是發(fā)現一入3.0深似海,從此幸福是路人。于是邊摸索邊修改,終于完成了代碼遷移。節(jié)后在完成手頭工作后,整理思路把Swift3.0遷移的一些實用技巧分享大家,需要的朋友可以參考下。
    2017-03-03
  • Swift中排序算法的簡單取舍詳解

    Swift中排序算法的簡單取舍詳解

    對于排序算法, 通常簡單的, 為大家所熟知的有, 選擇排序, 冒泡排序, 快速排序, 當然還有哈希, 桶排序之類的, 本文僅比較最為常見的選擇, 冒泡和快排,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面來一起看看吧。
    2018-03-03
  • Swift類型創(chuàng)建之自定義一個類型詳解

    Swift類型創(chuàng)建之自定義一個類型詳解

    這篇文章主要介紹了Swift類型創(chuàng)建之自定義一個類型詳解,本文講解了自定義原型、實現默認值、支持基本布爾型初始化、支持Bool類型判斷、支持兼容各們各派的類型、完善OCBool的布爾基因體系等內容,需要的朋友可以參考下
    2015-05-05
  • 詳解在swift中實現NSCoding的自動歸檔和解檔

    詳解在swift中實現NSCoding的自動歸檔和解檔

    本篇文章主要介紹了在swift中實現NSCoding的自動歸檔和解檔,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-03-03

最新評論

平塘县| 永城市| 清水河县| 汉沽区| 巴林左旗| 南丹县| 定结县| 永福县| 义乌市| 西青区| 江阴市| 布尔津县| 义乌市| 桃源县| 阿图什市| 博白县| 临邑县| 平远县| 凤翔县| 柯坪县| 邳州市| 洛川县| 林芝县| 乐至县| 库伦旗| 平原县| 灵台县| 囊谦县| 安康市| 平安县| 民乐县| 太白县| 林州市| 临汾市| 横峰县| 屏东市| 芦溪县| 南郑县| 丰城市| 加查县| 壶关县|