第二記-Swift版百思不姐
4187 ワード
今日はサブコントローラでデータを取得することを説明します.OCではAFNフレームワークでデータを要求します.SwiftではAlamofireを使用しています.もちろん、この2つのフレームワークの機能の違いは大きくなく、1人の著者が書いたもので、今日はこのフレームワークの使い方を説明します.
ほぼリクエスト方式は同じで、Postであればそのまま.getを.Postでいいです.その後、取得したデータをcellでモデルデータに変換します.
2:写真をダウンロードしてKingfisherを使います
使用法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にデータを すことを します.