用Swift寫圍棋App-03StoryBoard

已完成章節(jié)索引

用Swift寫圍棋App-00序
用Swift寫圍棋App-01準(zhǔn)備工作
用Swift寫圍棋App-02建立工程
用Swift寫圍棋App-03StoryBoard
用Swift寫圍棋App-04棋盤
用Swift寫圍棋App-05初識棋譜
用Swift寫圍棋App-06解析器初版
用Swift寫圍棋App-07解析器改進(jìn)
用Swift寫圍棋App-08繪制每一手棋
用Swift寫圍棋App-09分片算法
用Swift寫圍棋App-10氣的算法
用Swift寫圍棋App-11算法改進(jìn)

基本上,我的構(gòu)思是這樣的:
A: 應(yīng)用啟動后,進(jìn)入一個棋譜列表,可以看到一些可用的棋譜;
B: 每一個棋譜,會有一個標(biāo)題,比如“第一屆日本最強(qiáng)者決定戰(zhàn)吳清源對高川格”,還有一些小字說明額外的信息,比如“對弈時間:1957年2月20日”;
C: 用戶選中一行后,應(yīng)用會加載相應(yīng)的棋譜;

從這個設(shè)想來看,一個典型的UINavigatioController + UITableView似乎可以構(gòu)成主要的UI。

打開Main.stroyboard,選中之前Xcode自動創(chuàng)建的那個ViewController,在菜單中找到Editor->Embed In -> Navigation Controller。

在這個ViewController上拖一個UITableView;
再在StoryBorad中加入一個新的UIViewController;
在 UITableView中選中ContentView,按住control + command鍵,拖到新的ViewController上,建一個Show的Segue。

將XCode創(chuàng)建的ViewController改名叫HomeViewController,就是步驟A的界面了。
然后新建一個UIViewController的子類,命名為GameViewController,就是用來在步驟C中加載棋譜的了。

現(xiàn)在的Stroyboard是這個樣子的:

Screen Shot 2015-12-27 at 6.19.07 PM.png

運(yùn)行一下,執(zhí)行成功,界面是空的。
接下來,讓我們弄點(diǎn)測試數(shù)據(jù),讓界面豐滿起來。

建一個新的Swift類,命名為GameInfo,代碼如下:

import Foundation

class GameInfo: NSObject {
    
    var title: String = ""
    var metaInfo: String = ""
}

然后在HomeViewController中敲入如下代碼:

import UIKit

 public class HomeViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
    
    var _games:[GameInfo] = [GameInfo]()
    @IBOutlet weak var _tblGames:UITableView!
    
    override public func viewDidLoad() {
        super.viewDidLoad()
        
        let game1 = GameInfo()
        game1.title = "第一屆日本最強(qiáng)者決定戰(zhàn)吳清源對高川格"
        game1.metaInfo = "對弈時間:1957年2月20日"
        _games.append(game1)

    let game2 = GameInfo()
        game2.title = "MarkNote對弈李昌鎬"
        game2.metaInfo = "對弈時間:2015年12月28日"
        _games.append(game2)

        
        _tblGames.delegate = self
        _tblGames.dataSource = self
        
        
        
    }
    
    @objc public func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return _games.count
    }
    
    @objc public func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let row = indexPath.row
        let game = _games[row]
        
        let cell = _tblGames.dequeueReusableCellWithIdentifier("GameCell", forIndexPath: indexPath)
        cell.textLabel?.text = game.title
        cell.detailTextLabel?.text = game.metaInfo
        return cell
        
    }
}

注意,這里因?yàn)閁ITableViewDataSource, UITableViewDelegate是Objective-c中定義的,所以這個HomeViewController必須聲明為public的。否則一堆錯誤。
修改完畢,運(yùn)行是這個樣子的:

Simulator Screen Shot 27 Dec 2015, 7.09.39 PM.png

看起來很好,將代碼push到 github上
https://github.com/marknote/GoTao

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 已完成章節(jié)索引 用Swift寫圍棋App-00序用Swift寫圍棋App-01準(zhǔn)備工作用Swift寫圍棋App-0...
    MarkNote閱讀 2,880評論 3 3
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,305評論 4 61
  • 已完成章節(jié)索引 已完成章節(jié)索引 用Swift寫圍棋App-00序用Swift寫圍棋App-01準(zhǔn)備工作用Swift...
    MarkNote閱讀 2,638評論 3 7
  • 公司的這個項(xiàng)目做了一年,感覺自己有了很大的提升。決定把這一年來做的比較好比較有用的一些東西抽出來記錄下來。既能整理...
    陳小獅_Teresa閱讀 3,617評論 2 2
  • 楊絳前天去世,朋友圈、QQ空間又是一圈瘋轉(zhuǎn),眾評紛紜,說德藝雙馨者有之,說文以載道者有之,說大師楷模者有之。...
    春海唱曉閱讀 301評論 0 0

友情鏈接更多精彩內(nèi)容