【问题标题】:sequence events in a button按钮中的序列事件
【发布时间】:2018-07-24 08:13:18
【问题描述】:

在下面我有 2 个按钮。放置按钮需要在magicjohnson按钮之前按下,否则会出现运行时错误。

    @IBAction func magicJohnson(_ sender: Any) {
        let photo = self.imageV.image
        let data = UIImagePNGRepresentation(photo!)
        if cdHandler.saveObject(pic:  data!){
        }}

    @IBAction func place(_ sender: Any) {
        let image = UIImage.imageWithView(view: theView)
        let heart:UIImage = UIImage(named: "words")!
        let left:UIImage = image
        let newSize2 = CGSize(width: left.size.width, height: left.size.height)
        UIGraphicsBeginImageContextWithOptions(newSize2, false, left.scale)
        left.draw(in: CGRect(x: 0,y: 0,width: newSize2.width,height:   newSize2.height), blendMode:CGBlendMode.normal, alpha:1.0)
        heart.draw(in: CGRect(x: 0,y: 0,width: newSize2.width,height:   newSize2.height), blendMode:CGBlendMode.normal, alpha:1.0)
        let newImage:UIImage = UIGraphicsGetImageFromCurrentImageContext()!
        UIGraphicsEndImageContext()
        imageV.image = newImage
    }

我怎样才能让代码基本上做到这一点/

 @IBAction func magicJohnson(_ sender: Any) {
     FIRST {
   let image = UIImage.imageWithView(view: theView)
        let heart:UIImage = UIImage(named: "words")!
        let left:UIImage = image
        let newSize2 = CGSize(width: left.size.width, height: left.size.height)
        UIGraphicsBeginImageContextWithOptions(newSize2, false, left.scale)
        left.draw(in: CGRect(x: 0,y: 0,width: newSize2.width,height:   newSize2.height), blendMode:CGBlendMode.normal, alpha:1.0)
        heart.draw(in: CGRect(x: 0,y: 0,width: newSize2.width,height:   newSize2.height), blendMode:CGBlendMode.normal, alpha:1.0)
        let newImage:UIImage = UIGraphicsGetImageFromCurrentImageContext()!
        UIGraphicsEndImageContext()
        imageV.image = newImage
            }
second{
        let photo = self.imageV.image
        let data = UIImagePNGRepresentation(photo!)
        if cdHandler.saveObject(pic:  data!){
        }
        }}

【问题讨论】:

  • 只需在你的 VC 中创建一个标志(例如 buttonTappedEver = false),然后当第一次点击按钮时,设置标志。

标签: ios swift button action sequence


【解决方案1】:

试试这个,将placeBu声明为IBOutlet

@IBAction func magicJohnson(_ sender: Any) {
    self.place(self.placeBu) // may be self.place(UIButton()) if you don't care of sender instead of the outlet
    let photo = self.imageV.image
    let data = UIImagePNGRepresentation(photo!)
    if cdHandler.saveObject(pic:  data!){
    }}

或者

@IBAction func magicJohnson(_ sender: Any) {

    if let photo = self.imageV.image
    { 
        let data = UIImagePNGRepresentation(photo!)
           if cdHandler.saveObject(pic:  data!){
        }}

    }
  }

在为 magicJohnson 按钮启用的界面构建器集中设置为 false

@IBAction func place(_ sender: Any) {
    let image = UIImage.imageWithView(view: theView)
    let heart:UIImage = UIImage(named: "words")!
    let left:UIImage = image
    let newSize2 = CGSize(width: left.size.width, height: left.size.height)
    UIGraphicsBeginImageContextWithOptions(newSize2, false, left.scale)
    left.draw(in: CGRect(x: 0,y: 0,width: newSize2.width,height:   newSize2.height), blendMode:CGBlendMode.normal, alpha:1.0)
    heart.draw(in: CGRect(x: 0,y: 0,width: newSize2.width,height:   newSize2.height), blendMode:CGBlendMode.normal, alpha:1.0)
    let newImage:UIImage = UIGraphicsGetImageFromCurrentImageContext()!
    UIGraphicsEndImageContext()
    imageV.image = newImage
    self.magicJohnson.isEnabled = true
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-13
    • 2017-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多