Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何以编程方式设置UISlider初始值,或者,iOS程序如何启动?_Ios_Xcode_Startup_Uislider - Fatal编程技术网

如何以编程方式设置UISlider初始值,或者,iOS程序如何启动?

如何以编程方式设置UISlider初始值,或者,iOS程序如何启动?,ios,xcode,startup,uislider,Ios,Xcode,Startup,Uislider,我已经在xCode中开发了整整3天了。上一次我做UI开发是在Windows3.1和Petzold的书中。不管怎样,我已经启动并运行了我的第一个iOS应用程序,它基本上满足了我的需要。我有两个滑块来选择色调和饱和度,作为对它们的响应,我动态地画了一组渐变着色的圆圈。我在Hello World示例和stackoverflow之间运行了很多,包括在CGLayer中缓存渐变(感谢所有stackoverflow人员)。但有一点我不能完全理解: 我想将一个滑块的初始值设置为1.0,而不是默认的0.5。我知道

我已经在xCode中开发了整整3天了。上一次我做UI开发是在Windows3.1和Petzold的书中。不管怎样,我已经启动并运行了我的第一个iOS应用程序,它基本上满足了我的需要。我有两个滑块来选择色调和饱和度,作为对它们的响应,我动态地画了一组渐变着色的圆圈。我在Hello World示例和stackoverflow之间运行了很多,包括在CGLayer中缓存渐变(感谢所有stackoverflow人员)。但有一点我不能完全理解:

我想将一个滑块的初始值设置为1.0,而不是默认的0.5。我知道我可以在IB中做到这一点,但我更喜欢编写代码,我想我希望完全离开IB。我真的不明白它是如何在事物之间建立联系的,我想理解代码。我有这样的代码来设置它:

- (void)viewDidLoad
{
    NSLog(@"viewDidLoad");
    [super viewDidLoad];
    [hue_slider setValue:0.5];
    [sat_slider setValue:1.0];
    self.led_view.hue_slider_value=0.5;
    self.led_view.sat_slider_value=1.0;
// Do any additional setup after loading the view, typically from a nib.
}

SATH滑块仍然在中间而不是在末端(1是最大值)。从stackexchange阅读中,我了解到我可能在错误的时间调用此函数,调用viewDidLoad时滑块没有真正加载,并且我的初始值被IB中指定的值覆盖。但我没有看到调用的位置。因此,问题是:

我应该在我的程序中放在哪里

[sat_slider setValue:1.0];
所以它设置滑块的初始值,覆盖IB中的默认值?有人能解释一下iOS程序启动的顺序吗?如果你能找到有关iOS和Objective C编程的在线或印刷书籍,那就太好了

编辑

当我检查sat_滑块的值时,它是nil。这意味着一个连接丢失了?我在故事板中拖动它,除了一个动作之外,还创建了一个IBOutlet

@interface led_testViewController : UIViewController

- (IBAction)saturation_scroll:(id)sender;
- (IBAction)hue_scroll:(id)sender;

@property (retain, nonatomic) IBOutlet UISlider *hue_slider;
@property (retain, nonatomic) IBOutlet UISlider *sat_slider;
@property (strong, nonatomic) IBOutlet led_view *led_view;

@end

您可以将代码放入
-(void)视图中,该视图将显示:(BOOL)动画

我按照ABC和NJones的建议检查sat\U滑块,结果为零。ViewController.h文件中有sat_滑块和色调滑块的属性,但仍缺少一些内容。我删除了属性,在IB中重新拖动它们,然后我可以毫无问题地在viewDidLoad中设置滑块位置。

检查是否设置滑块。还要确保它在IB中正确连接。如果未正确连接,请将其移除,然后再次添加到nib/情节提要中。这应该可以解决问题。

在设置值时,是否可以检查“sat\U滑块”是否为零?它是否通过IB正确连接?将其放入
viewDidLoad
方法:
NSLog(@“sat_滑块为:%@”,self.sat_滑块)有点离题,但是从nibs加载视图和其他对象很有意思,了解它是如何工作的,你会理解它是如何设置连接的-这不是魔术,尽管有一些说法相反:)@ABC:你是对的,当我检查sat_slider的值时,它是零。这意味着一个连接丢失了?我在故事板中拖动它,并创建了一个IBOutlet,另外还有一个操作:`@interface led_testViewController:UIViewController-(iAction)饱和度_scroll:(id)sender;-(iAction)色调滚动:(id)发送方@属性(保留,非原子)IBUISLIDER*hue_滑块@属性(保留,非原子)IBUISLIDER*sat_滑块@属性(强、非原子)IBOutlet led_视图*led_视图`ABC和NJones:你是对的,当我检查sat_滑块的值时,它是零。我有两个滑块的IBOutlet属性,但肯定缺少一些东西。我从.h文件中删除了这两个属性,并在情节提要中重新拖动它们,现在我可以在viewDidLoad中很好地设置这些值。这就是我想要离开IB的原因。有很多东西需要学习。。。谢谢大家的帮助。这是一个糟糕的做法,因为
视图将出现:
在用户切换到其他选项卡并返回时被调用。如果在
viewDidLoad
中设置滑块值不起作用,则有一个更基本的问题(在本例中就是这样)应该解决。