为什么我的UIButton会影响我在Swift中的UIImageView?

时间:2017-03-28 07:05:07

标签: ios swift uiimageview uibutton

我正在Swift中构建一个简单的应用程序,该应用程序包含一个png图像,一个UISegmentedControl和一个UIButton。在UISegmentedControl上选择不同的控件会调整披萨图像的大小。当我在UISegmentedControl中单击“Large”,然后按下名为submitOrderDisplay的界面上的按钮时,它会将图像从大尺寸缩小到小尺寸。我知道它与我在代码底部使用的setTitle方法有关,但我不明白为什么会导致图像重置为默认的小尺寸。如果我删除setTitle方法,单击UIButton后不会调整大小。按下按钮后,我不希望图像改变大小。我如何实现这一目标?

import UIKit

class SecondViewController: UIViewController{


@IBOutlet weak var sizeChoiceControl: UISegmentedControl!
@IBOutlet weak var submitOrderDisplay: UIButton!
@IBOutlet weak var myImageView: UIImageView!


@IBAction func sizeSelected() {

    if(sizeChoiceControl.titleForSegmentAtIndex(sizeChoiceControl.selectedSegmentIndex)! == "Small"){
        myImageView.setHeight(height: 85)
        myImageView.setWidth(width: 85)
        myImageView.setX(x: 146)
        myImageView.setY(y: 63)
    }
    else if(sizeChoiceControl.titleForSegmentAtIndex(sizeChoiceControl.selectedSegmentIndex)! == "Medium"){
        myImageView.setHeight(height: 100)
        myImageView.setWidth(width: 100)
        myImageView.setX(x: 139)
        myImageView.setY(y: 55)
    }
    else if(sizeChoiceControl.titleForSegmentAtIndex(sizeChoiceControl.selectedSegmentIndex)! == "Large"){
        myImageView.setHeight(height: 115)
        myImageView.setWidth(width: 115)
        myImageView.setX(x: 131)
        myImageView.setY(y: 48)
    }
}

@IBAction func SubmitOrderClicked(sender: UIButton) { 

    submitOrderDisplay.setTitle("Update Order", forState: UIControlState.Normal)
}
}

1 个答案:

答案 0 :(得分:0)

在viewDidLoad函数中写下按钮的配置:

submitOrderDisplay.setTitle("Update Order", forState: UIControlState.Normal)

我知道您想要将标题更新为订单。

如果要在按下时更改标题,则必须将其调用为按钮的其他状态,如:

submitOrderDisplay.setTitle("Update Order", forState: UIControlState.Highlihgted)

如果在事件发生时更改了不同状态按钮的配置,那么这必须是重新设置大小的原因。