我已在UIScrollView
中以编程方式声明了UIImageView属性var scrollView: UIScrollView!
var imageView = UIImageView(image: UIImage(named: "OPA_farm.png"))
let drawView = UIView()
我用" OPA_farm.png"初始化它的原因这是我能够获得正确滚动的超大图像的唯一方法
在viewDidLoad中,它们被添加为子视图
// other stuff here
myView.addSubview(scrollView)
myView.addSubview(drawView)
scrollView.addSubview(imageView)
但更改UISegmentedControl发件人应该更改图像(以及其他内容)
@IBAction func chooseFarm(_ sender: UISegmentedControl) {
switch farmSegment.selectedSegmentIndex {
case 1:
imageView = UIImageView(image: UIImage(named: "OF_farm.png"))
// other things
break
default:
imageView = UIImageView(image: UIImage(named: "OPA_farm.png"))
// other things
}
}
其他事情发生了变化,但.png图像并没有改变。我在发布和尝试之前(和期间)搜索过的内容已经
这些事情似乎没有适用
遵循QuickHelp Inspector到Apple文档提供稀疏信息并在Objective C中。我知道我可以在XCode 8中使用转换函数来获取当前的Swift语法,并且它同意其他帖子,因为我似乎在做一切都正确。我打败了。有人会神秘化吗?
答案 0 :(得分:1)
拥有图像视图后,您无需创建新图像(每次按下按钮时)。
您可以在课程顶部声明这些内容(使用imageView)
let ofImage = UIImage(named: "OF_farm.png")
let opaImage = UIImage(named: "OPA_farm.png")
在您的案例陈述中,只需将图片重新分配给您的imageView
即可 switch farmSegment.selectedSegmentIndex {
case 1:
imageView.image = ofImage
// other things
break
default:
imageView.image = opaImage
// other things
}
在viewDidLoad中,将imageView添加到scrollView后,如果需要,可以添加自动布局约束。请务必先设置它:
imageView.translatesAutoresizingMaskIntoConstraints = false
最后一点:不要忘记使用7+和SE设置(以及其他设置)在模拟器中查看您的工作,以确保您拥有适合每个人的功能。