第二記-Swift版百思不姐

4187 ワード

今日はサブコントローラでデータを取得することを説明します.OCではAFNフレームワークでデータを要求します.SwiftではAlamofireを使用しています.もちろん、この2つのフレームワークの機能の違いは大きくなく、1人の著者が書いたもので、今日はこのフレームワークの使い方を説明します.
 //     
        let params = NSMutableDictionary()
        params["a"] = "list"
        params["c"] = "data"
        params["type"] = self.Mycard()
        weak var weakSelf = self
        Alamofire.request(.GET, XYrequestUrl, parameters:NSDictionary(dictionary: params) as? [String: AnyObject]).responseJSON() { response in
            
            switch response.result{
            case .Success:
                let JSON = response.result.value
                //        
                let TextModel = JSON!.valueForKey("list") as? NSArray
                //      ->     
                weakSelf?.dataArr =  XYTextModel.mj_objectArrayWithKeyValuesArray(TextModel)
                //   maxtime
                let infoJson  = JSON!["info"]! as? NSDictionary
                weakSelf?.nextData = infoJson!["maxtime"] as? String
                
                //     
                weakSelf?.tableView.reloadData()
                //     
                weakSelf?.tableView.mj_header.endRefreshing()
            case .Failure(let error):
                
                print(error)
                weakSelf?.tableView.mj_header.endRefreshing()
                
            }
        }

ほぼリクエスト方式は同じで、Postであればそのまま.getを.Postでいいです.その後、取得したデータをcellでモデルデータに変換します.
2:写真をダウンロードしてKingfisherを使います
使用法1:
 imageUser.kf_setImageWithURL(NSURL(string: selectModel!.profile_image!)!, placeholderImage: UIImage(named: "defaultUserIcon"))
使用法2:
    self.progrssImage.setProgress(0.0, animated: false)
            //     ,    
     self.backImage.kf_setImageWithURL(NSURL(string: pictureModel!.middle_image!)!, placeholderImage: UIImage(named: "mine-icon-activity"), optionsInfo: nil, progressBlock: { (receivedSize, totalSize) -> () in
            
            self.buttonImage.hidden = true
            self.titleImage.hidden = false
            //         
            let progress = 1.0 * CGFloat(receivedSize) / CGFloat(totalSize)
            self.progrssImage.setProgress(progress, animated: true)
            
            //         
            self.progrssImage.hidden = false
            self.progrssImage.progressLabel.textColor = UIColor.redColor()
            self.progrssImage.progressLabel.text = NSString(format:"%.1f%%",progress*100) as String
            self.progrssImage.roundedCorners = 3;
        
            })//           
             { (image, error, cacheType, imageURL) -> () in
                
                //       
                self.progrssImage.hidden = true
                self.titleImage.hidden = true
                //     
                if self.pictureModel!.bigImage == 1{
                    //        
                   UIGraphicsBeginImageContextWithOptions(self.backImage.size, true, 0.0);
                    //      image          
                   let width = self.backImage.width;
                   let height = width * image!.size.height / image!.size.width
                    
                    //           ,         image context 
                    image?.drawInRect(CGRectMake(0, 0, width, height))
                    
                    //     
                    self.backImage.image = UIGraphicsGetImageFromCurrentImageContext()
                    //        
                    UIGraphicsEndImageContext()
                    //  Button
                    self.buttonImage.hidden = false
                }else {
                    self.backImage.contentMode = .ScaleToFill
                    self.buttonImage.hidden = true;
                }
            }

この では、ダウンロード の を できます.
3: は を して、 はやはりMJExtensionを うことが きで、みんながすべてSwiftがOCのブリッジを び すことを することができることを じます
4: バーのパーセント
もOCのDACircularProgressフレームを っています.このフレームは いやすいだけでなく、とても くて、 かりやすいです.
さて、 は4つの で なフレームワークを しました.
cellはXIBで し、cellにデータを すことを します.