选取照片 push newBookcontroller

//
// pushNewBookController.swift
// XBook
//
// Created by xlx on 15/12/11.
// Copyright © 2015年 xlx. All rights reserved.
//

import UIKit

class pushNewBookController:UIViewController,BookTitleDelegate,PhotoPickerDelegate,VPImageCropperDelegate,UITableViewDelegate,UITableViewDataSource{

var BookTitle:BookTitleView?

var tableView:UITableView?

var titleArray:Array<String> = []

var Book_Title=""

var Score:LDXScore?


var type = "文学"
var detaiType = "文学"

var Book_Description = ""

/// 编辑
var BookObject:AVObject?
var fixType:String?

/**
 表示是否现实星星
 */
var showScore = false

override func viewDidLoad() {
    super.viewDidLoad()

    self.view.backgroundColor = UIColor.whiteColor()
    
    self.BookTitle = BookTitleView(frame: CGRectMake(0,40,SCREEN_WIDTH,160))
    self.BookTitle?.delegate = self
    self.view.addSubview(self.BookTitle!)
    
    self.tableView = UITableView(frame: CGRectMake(0, 200, SCREEN_WIDTH, SCREEN_HEIGHT - 200), style: .Grouped)
    /**
    使多余的分割线消失
    */
    self.tableView?.tableFooterView = UIView()
    self.tableView?.delegate = self
    self.tableView?.dataSource = self
    self.tableView?.registerClass(UITableViewCell.classForCoder(), forCellReuseIdentifier: "cell")
    self.tableView?.backgroundColor = UIColor(colorLiteralRed: 250/255, green: 250/255, blue: 250/255, alpha: 1)
    self.view.addSubview(self.tableView!)
    
    self.titleArray = ["标题","评分","分类","书评"]
    
    
    self.Score = LDXScore(frame: CGRectMake(100,10,100,22))
    self.Score?.isSelect = true
    self.Score?.normalImg = UIImage(named: "btn_star_evaluation_normal")
    self.Score?.highlightImg = UIImage(named: "btn_star_evaluation_press")
    self.Score?.max_star = 5
    self.Score?.show_star = 5
    
    /**
    注册通知
    */
    NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("pushCallBack:"), name: "pushCallBack", object: nil)
    
}
/**
 编辑
 */
func fixBook(){
    if self.fixType == "fix" {
        self.BookTitle?.BookName?.text = self.BookObject!["BookName"] as? String
        self.BookTitle?.BookEditor?.text = self.BookObject!["BookEditor"] as? String
        let coverFile = self.BookObject!["cover"] as? AVFile
        coverFile?.getDataInBackgroundWithBlock({ (data, error) -> Void in
            self.BookTitle?.BookCover?.setImage(UIImage(data: data), forState: .Normal)
        })
        
        self.Book_Title = (self.BookObject!["title"] as? String)!
        self.type = (self.BookObject!["type"] as? String)!
        self.detaiType = (self.BookObject!["detailType"] as? String)!
        self.Book_Description = (self.BookObject!["description"] as? String)!
        self.Score?.show_star = (Int)((self.BookObject!["score"] as? String)!)!
        if self.Book_Description != "" {
            self.titleArray.append("")
        }
    }
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}
deinit{
    print("pushNewBookController reallse")
    /**
    移除通知
    */
    NSNotificationCenter.defaultCenter().removeObserver(self)
}
/**
 pushCallBack
 */
func pushCallBack(notification:NSNotification){
    let dict = notification.userInfo
    if (String(dict!["success"]!)) == "true" {
        if self.fixType == "fix" {
            ProgressHUD.showSuccess("修改成功")
        }else{
            ProgressHUD.showSuccess("上传成功")
        }
        self.dismissViewControllerAnimated(true, completion: { () -> Void in
            
        })
    }else{
        ProgressHUD.showError("上传失败")
    }
}
/**
 BookTitleDelegate
 */

func choiceCover() {

    let vc = PhotoPickerViewController()
    vc.delegate = self
    self.presentViewController(vc, animated: true) { () -> Void in
        
    }


}
  /**
 PhotoPickerDelegate
 */
func getImageFromPicker(image: UIImage) {
    let CroVC = VPImageCropperViewController(image: image, cropFrame: CGRectMake(0,100,SCREEN_WIDTH,SCREEN_WIDTH*1.273), limitScaleRatio: 3)
    CroVC.delegate = self
    self.presentViewController(CroVC, animated: true) { () -> Void in
        
    }

}
func close(){
    self.dismissViewControllerAnimated(true) { () -> Void in
        
    }
}

func sure(){
    let dict = [
        "BookName":(self.BookTitle?.BookName?.text)!,
        "BookEditor":(self.BookTitle?.BookEditor?.text)!,
        "BookCover":(self.BookTitle?.BookCover?.currentImage)!,
        "title":self.Book_Title,
        "score":String((self.Score?.show_star)!),
        "type":self.type,
        "detailType":self.detaiType,
        "description":self.Book_Description,
    ]
    ProgressHUD.show("")
    
    if self.fixType == "fix" {
        pushBook.pushBookInBack(dict, object: self.BookObject!)
    }else{
        
        let object = AVObject(className: "Book")
        pushBook.pushBookInBack(dict, object: object)
    }

}
/**
*  VPImageDelegate
*/
func imageCropperDidCancel(cropperViewController: VPImageCropperViewController!) {
    cropperViewController.dismissViewControllerAnimated(true) { () -> Void in
        
    }
}
func imageCropper(cropperViewController: VPImageCropperViewController!, didFinished editedImage: UIImage!) {
    self.BookTitle?.BookCover?.setImage(editedImage, forState: .Normal)
    cropperViewController.dismissViewControllerAnimated(true) { () -> Void in
        
    }
}
/**
*  UITableViewDelegate  &&  UITableViewDataSource
*/
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
    return 1
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return self.titleArray.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = UITableViewCell(style: .Value1, reuseIdentifier: "cell")
    /**
    *  移除cell中的所有内容
    */
    for view in cell.contentView.subviews {
        view.removeFromSuperview()
    }
    
    if(indexPath.row != 1){
        cell.accessoryType = .DisclosureIndicator
    }
    cell.textLabel?.text = self.titleArray[indexPath.row]
    cell.textLabel?.font = UIFont(name: MY_FONT, size: 15)
    cell.detailTextLabel?.font = UIFont(name: MY_FONT, size: 13)
    
    var row = indexPath.row
    if self.showScore && row > 1 {
        row--
    }
    switch row {
        case 0:
            cell.detailTextLabel?.text = self.Book_Title
            break
        case 2:
            cell.detailTextLabel?.text = self.type + "->" + self.detaiType
            break
        case 4:
            cell.accessoryType = .None
            let commentView = UITextView(frame: CGRectMake(4,4,SCREEN_WIDTH-8,80))
            commentView.text = self.Book_Description
            commentView.font = UIFont(name: MY_FONT, size: 14)
            commentView.editable = false
            cell.contentView.addSubview(commentView)
            break
        default:
            break
    }
    /**
    判断是否需要在第二行添加小星星
    
    */
    if self.showScore && indexPath.row == 2 {
        cell.contentView.addSubview(self.Score!)
    }
    return cell
}
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
    if showScore && indexPath.row >= 5 {
        return 88
    }else if !self.showScore && indexPath.row >= 4 {
        return 88
    }else{
        return 44
    }
}
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    self.tableView?.deselectRowAtIndexPath(indexPath, animated: true)
    var row = indexPath.row
    if self.showScore && row>1 {
        row -= 1
    }
    switch row {
    case 0:
        self.tableViewSelectTitle()
        break
    case 1:
        self.tableViewSelectScore()
        break
    case 2:
        self.tableViewSelectType()
        break
    case 3:
        self.tableViewSelectDescription()
        break
    default:
        break
    
    }
    
}

/**
*  选择标题
*/
func tableViewSelectTitle(){
    let vc = Push_TitleController()
    GeneralFactory.addTitleWithTile(vc)
    /**
    *  实现闭包
    *
    */
    vc.callBack = ({(Title:String)->Void in
        self.Book_Title = Title
        self.tableView?.reloadData()
    })
    self.presentViewController(vc, animated: true) { () -> Void in
        
    }

}
/**
*  选择评分
*/
func tableViewSelectScore(){
    
    /**
    *  插入cell移除cell的动画
    */
    self.tableView?.beginUpdates()
    let tempIndexPath = [NSIndexPath(forRow: 2, inSection: 0)]
    
    if self.showScore{
        self.titleArray.removeAtIndex(2)
        self.tableView?.deleteRowsAtIndexPaths(tempIndexPath, withRowAnimation: .Right)
        self.showScore = false
    }else{
        self.titleArray.insert("", atIndex: 2)
        self.tableView?.insertRowsAtIndexPaths(tempIndexPath, withRowAnimation: .Left)
        self.showScore = true
    }
    
    self.tableView?.endUpdates()

}
/**
*  选择分类
*/
func tableViewSelectType(){
    let vc = Push_TypeController()
    GeneralFactory.addTitleWithTile(vc)
    let btn1 = vc.view.viewWithTag(1234) as? UIButton
    let btn2 = vc.view.viewWithTag(1235) as? UIButton
    btn1?.setTitleColor(RGB(38, g: 82, b: 67), forState: .Normal)
    btn2?.setTitleColor(RGB(38, g: 82, b: 67), forState: .Normal)
    vc.type = self.type
    vc.detailType = self.detaiType
    vc.callBack = ({(type:String,detailType:String)->Void in
        self.type = type
        self.detaiType = detailType
        self.tableView?.reloadData()
        
    })
    self.presentViewController(vc, animated: true) { () -> Void in
        
    }

}
/**
*  选择书评
*/
func tableViewSelectDescription(){
    let vc = Push_DescriptionController()
    GeneralFactory.addTitleWithTile(vc)
    vc.textView?.text = self.Book_Description
    vc.callBack = ({(description:String)->Void in
        self.Book_Description = description
        if self.titleArray.last == "" {
            self.titleArray.removeLast()
        }
        if description != "" {
            self.titleArray.append("")
        }
        self.tableView?.reloadData()
        
    })
    self.presentViewController(vc, animated: true) { () -> Void in
    }

}

}

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,744评论 6 502
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,505评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,105评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,242评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,269评论 6 389
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,215评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,096评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,939评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,354评论 1 311
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,573评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,745评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,448评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,048评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,683评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,838评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,776评论 2 369
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,652评论 2 354

推荐阅读更多精彩内容

  • 创建桥接文件 导入3.0 创建RecipeResultViewController,RecipeViewContr...
    275ed1894f94阅读 255评论 0 0
  • 概述在iOS开发中UITableView可以说是使用最广泛的控件,我们平时使用的软件中到处都可以看到它的影子,类似...
    liudhkk阅读 9,037评论 3 38
  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明先生_X自主阅读 15,979评论 3 119
  • 《植物学家的锅略大于银河系》 P92~P143(第二章完) 在第二章,讲到了: 面粉、莲藕、黄瓜、光敏蔬菜、草莓、...
    黄一馨_沧海昆仑阅读 113评论 0 1
  • 夜未央,星灿烂,仲秋佳节卿作伴。不奢望,自难忘。 凉意寒,月儿圆,故人千里共婵娟。香桂飘,乐逍遥
    七彩阁阅读 161评论 0 4