ios - 按钮中的序列事件

标签 ios swift button action sequence

在我的正下方有 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!){
        }
        }}

最佳答案

试试这个,将 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!){
        }}

    }
  }

或在 Interface builder 中将 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
}

关于ios - 按钮中的序列事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48775606/

相关文章:

IOS boost asio 从 ipv6 网络连接

ios - 为不同的 View Controller 设置状态栏颜色

ios - 从 UITextView 获取图像

ios - 如何快速创建 NSDictionary 并从 NSUserDefaults 对象写入和读取信息

ios - 在 Swift 2.2.1 中替换 c 风格的 for-loop

java - 将另一行组件添加到 relativelayout

ios - AVQueuePlayer 不前进到 iOS 8 中的下一个项目

ios - 通过segue将CollectionView的选定单元格索引发送到viewController

ios - 警报 View 按钮

javascript - 在文本框中的 Enter 键上使用 JavaScript 触发按钮单击