<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ## 開始 下載[初始項目](http://cdn1.raywenderlich.com/wp-content/uploads/2014/11/BlueLibrarySwift-Starter.zip)并解壓,在 Xcode 中打開?`BlueLibrarySwift.xcodeproj`?項目文件。 項目中有三個地方需要注意一下: 1. `ViewController`?有兩個?`IBOutlet`?,分別連接到了?`UITableView`?和?`UIToolBar`?上。 2. 在 StoryBoard 上有三個組件設置了約束。最上面的是專輯的封面,封面下面是列舉了相關專輯的列表,最下面是有兩個按鈕的工具欄,一個用來撤銷操作,另一個用來刪除你選中的專輯。 StoryBoard 看起來是這個樣子的: [![](http://cdn5.raywenderlich.com/wp-content/uploads/2014/11/Screen-Shot-2014-11-11-at-12.20.32-AM-480x228.png)](http://cdn5.raywenderlich.com/wp-content/uploads/2014/11/Screen-Shot-2014-11-11-at-12.20.32-AM-480x228.png) 1. 一個簡單的?`HTTP`?客戶端類 (`HTTPClient`) ,里面還沒有什么內容,需要你去完善。 注意:其實當你創建一個新的 Xcode 的項目的時候,你的代碼里就已經有很多設計模式的影子了: MVC、委托、代理、單例 - 真是眾里尋他千百度,得來全不費功夫。 在學習第一個設計模式之前,你需要創建兩個類,用來存儲和展示專輯數據。 創建一個新的類,繼承?`NSObject`?名為?`Album`?,記得選擇 Swift 作為編程語言然后點擊下一步。 打開?`Album.swift`?然后添加如下定義: ~~~ var title : String! var artist : String! var genre : String! var coverUrl : String! var year : String! ~~~ 這里創建了五個屬性,分別對應專輯的標題、作者、流派、封面地址和出版年份。 接下來我們添加一個初始化方法: ~~~ init(title: String, artist: String, genre: String, coverUrl: String, year: String) { super.init() self.title = title self.artist = artist self.genre = genre self.coverUrl = coverUrl self.year = year } ~~~ 這樣我們就可以愉快的初始化了。 然后再加上下面這個方法: ~~~ func description() -> String { return "title: \(title)" + "artist: \(artist)" + "genre: \(genre)" + "coverUrl: \(coverUrl)" + "year: \(year)" } ~~~ 這是專輯對象的描述方法,詳細的打印了?`Album`?的所有屬性值,方便我們查看變量各個屬性的值。 接下來,再創建一個繼承自?`UIView`?的視圖類?`AlbumView.swift`。 在新建的類中添加兩個屬性: ~~~ private let coverImage: UIImageView! private let indicator: UIActivityIndicatorView! ~~~ `coverImage`?代表了封面的圖片,`indicator`?則是在加載過程中顯示的等待指示器。 這兩個屬性都是私有屬性,因為除了?`AlbumView`?之外,其他類沒有必要知道他倆的存在。在寫一些框架或者類庫的時候,這種規范十分重要,可以避免一些誤操作。 接下來給這個類添加初始化化方法: ~~~ required init(coder aDecoder: NSCoder) { super.init(coder: aDecoder) } init(frame: CGRect, albumCover: String) { super.init(frame: frame) backgroundColor = UIColor.blackColor() coverImage = UIImageView(frame: CGRectMake(5, 5, frame.size.width - 10, frame.size.height - 10)) addSubview(coverImage) indicator = UIActivityIndicatorView() indicator.center = center indicator.activityIndicatorViewStyle = .WhiteLarge indicator.startAnimating() addSubview(indicator) } ~~~ 因為?`UIView`?遵從?`NSCoding`?協議,所以我們需要?`NSCoder`?的初始化方法。不過目前我們沒有`encode`?和?`decode`?的必要,所以就把它放在那里就行,調用父類方法初始化即可。 在真正的初始化方法里,我們設置了一些初始化的默認值。比如設置背景顏色默認為黑色,創建`ImageView`?并設置了?`margin`?值,添加了一個加載指示器。 最終我們再加上如下方法: ~~~ func highlightAlbum(#didHighlightView: Bool) { if didHighlightView == true { backgroundColor = UIColor.whiteColor() } else { backgroundColor = UIColor.blackColor() } } ~~~ 這會切換專輯的背景顏色,如果高亮就是白色,否則就是黑色。 在繼續下面的內容之前,?`Command + B`?試一下確保沒有什么問題,一切正常?那就開始第一個設計模式的學習啦!:]
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看