gpt4 book ai didi

ios - 如何快速更新实例变量?

转载 作者:行者123 更新时间:2023-11-30 13:44:58 25 4
gpt4 key购买 nike

我希望当单击步进器时圆圈的颜色发生变化。我相信问题是我正在使用该类的实例。

这是我的第一个文件:

class ViewController: UIViewController {

@IBOutlet var redValue: UILabel!
@IBOutlet var greenValue: UILabel!
@IBOutlet var blueValue: UILabel!

@IBOutlet var redStepper: UIStepper!
@IBOutlet var greenStepper: UIStepper!
@IBOutlet var blueStepper: UIStepper!

var redd = 0.0;
var greenn = 0.0;
var bluee = 0.0;

@IBAction func redChange(sender: UIStepper)
{
redValue.text = Int(sender.value).description;
redd = sender.value;
}
@IBAction func greenChange(sender: UIStepper)
{
greenValue.text = Int(sender.value).description;
greenn = sender.value;
}
@IBAction func blueChange(sender: UIStepper)
{
blueValue.text = Int(sender.value).description;
bluee = sender.value;
}

}

这是我的第二个文件:

class UIView1: UIView {

var colors = ViewController();

required init?(coder aDecoder: NSCoder)
{
super.init(coder: aDecoder)
}

override func drawRect(rect: CGRect)
{
let circle2 = UIView(frame: CGRect(x: -25.0, y: 10.0, width: 100.0, height:100.0))
circle2.layer.cornerRadius = 50.0
let startingColor2 = UIColor(red: (CGFloat(colors.redd)/255),
green: (CGFloat(colors.greenn))/255, blue: (CGFloat(colors.bluee))/255, alpha: 1.0)
circle2.backgroundColor = startingColor2;
addSubview(circle2);
}

}

最佳答案

可能存在各种连接问题,因为我们看不到该代码/IB。但是,我怀疑您至少错过了通知 View 需要重绘自身的调用,因为基础值已更改。

self.view.setNeedsDisplay()

这是我用来试验的整个 Playground ,对您的代码进行了各种修改。检查最后一个副本以查看更改。注意:UI 元素实际上并未创建,我在手动设置 UIStepper.value 后模拟了一个光滑的效果。

import UIKit

class ViewController: UIViewController {

@IBOutlet var redValue: UILabel!
@IBOutlet var greenValue: UILabel!
@IBOutlet var blueValue: UILabel!

@IBOutlet var redStepper: UIStepper!
@IBOutlet var greenStepper: UIStepper!
@IBOutlet var blueStepper: UIStepper!

var redd = 100.0;
var greenn = 100.0;
var bluee = 100.0;

@IBAction func redChange(sender: UIStepper)
{
redValue?.text = Int(sender.value).description
redd = sender.value
self.view.setNeedsDisplay()
}
@IBAction func greenChange(sender: UIStepper)
{
greenValue.text = Int(sender.value).description
greenn = sender.value
}
@IBAction func blueChange(sender: UIStepper)
{
blueValue.text = Int(sender.value).description
bluee = sender.value
}
}


class UIView1: UIView {

var colors = ViewController()

override init(frame: CGRect) {
super.init(frame: frame)
}

required init?(coder aDecoder: NSCoder)
{
super.init(coder: aDecoder)
}

override func drawRect(rect: CGRect)
{
let circle2 = UIView(frame: CGRect(x: -25.0, y: 10.0, width: 100.0, height:100.0))
circle2.layer.cornerRadius = 50.0
let startingColor2 = UIColor(red: CGFloat(colors.redd/255.0),
green: (CGFloat(colors.greenn))/255,
blue: (CGFloat(colors.bluee))/255,
alpha: 1.0)
circle2.backgroundColor = startingColor2;
addSubview(circle2);
}
}

let v = UIView1(frame: CGRectMake(0,0,400, 240))
v.colors.view = v

let rstepper = UIStepper(frame: CGRectMake(0,0,300,50))
rstepper.maximumValue = 255.0
rstepper.value = 240.0
v.colors.redChange(rstepper)


// inspect the view now:
v

关于ios - 如何快速更新实例变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35073235/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com