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

Ios 为什么我的UIButton会影响Swift中的UIImageView?,ios,swift,uiimageview,uibutton,Ios,Swift,Uiimageview,Uibutton,我正在用Swift构建一个简单的应用程序,该应用程序包含一个png图像、一个UISegmentedControl和一个UIButton。在UISegmentedControl上选择不同的控件可调整比萨饼图像的大小。当我单击UISegmentedControl中的“大”,然后按下界面上名为SubmiterDerDisplay的按钮时,它会将图像从大尺寸缩小到小尺寸。我知道这与我在代码最底层使用的setTitle方法有关,但我不明白为什么这会导致图像重置为默认的小尺寸。如果删除setTitle方法,

我正在用Swift构建一个简单的应用程序,该应用程序包含一个png图像、一个UISegmentedControl和一个UIButton。在UISegmentedControl上选择不同的控件可调整比萨饼图像的大小。当我单击UISegmentedControl中的“大”,然后按下界面上名为SubmiterDerDisplay的按钮时,它会将图像从大尺寸缩小到小尺寸。我知道这与我在代码最底层使用的setTitle方法有关,但我不明白为什么这会导致图像重置为默认的小尺寸。如果删除setTitle方法,则在单击UIT按钮后不会进行大小调整。我不希望按下按钮后图像的大小发生变化。我如何做到这一点

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

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

submitOrderDisplay.setTitle("Update Order", forState: UIControlState.Normal)
我知道你想把标题更新顺序

如果要在按下时更改标题,必须调用该按钮的另一种状态,如:

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

如果在事件发生时更改按钮在不同状态下的配置,这一定是大小正在调整的原因。

是否使用自动布局,以及图像视图和按钮之间是否存在约束(可能是“相同宽度”或其他内容)?@AndreasOetjen是的,我使用的是自动布局,该框已选中。在参考插座中,我看到myImageView连接到“自定义”。不知道那是什么意思。但我看不到图像视图和其他任何视图之间存在任何其他矛盾。@AndreasOetjen我尝试关闭自动布局,解决了问题,但这是防止图像调整大小的唯一方法吗?我已经读到,如果不使用autolayout,我的应用程序将很难支持所有屏幕分辨率,因此我对关闭它感到紧张。当您使用autolayout时,您必须确保在修改控件的宽度和高度时,您定义的约束仍然有效。因此,您必须将imageView约束为“居中”,而不是与边界的固定距离。不幸的是,这通常是相当棘手的,所以很难用简短的评论来解释。你将不得不四处游荡,如果你仍然陷入困境,发布你的限制,我们将尽力帮助你。