选取照片 push newBookcontroller

2018-09-25  本文已影响9人  _弓长_大人

//
// 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
    }

}

}

上一篇 下一篇

猜你喜欢

热点阅读