Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/101.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.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
Ios 第一次单击后停止创建标签_Ios_Objective C_Uilabel - Fatal编程技术网

Ios 第一次单击后停止创建标签

Ios 第一次单击后停止创建标签,ios,objective-c,uilabel,Ios,Objective C,Uilabel,每次单击随机按钮时,我都会创建一个选框标签,并根据随机选择的案例设置其文本。以下是我的代码示例: - (IBAction)randomWatch:(id)sender { MarqueeLabel *watchTitle = [[MarqueeLabel alloc] initWithFrame:CGRectMake(0, 77, self.view.frame.size.width-20, 44) rate:50.0f andFadeLength:10.0f]; watchTi

每次单击随机按钮时,我都会创建一个选框标签,并根据随机选择的案例设置其文本。以下是我的代码示例:

- (IBAction)randomWatch:(id)sender {
    MarqueeLabel *watchTitle = [[MarqueeLabel alloc] initWithFrame:CGRectMake(0, 77, self.view.frame.size.width-20, 44) rate:50.0f andFadeLength:10.0f];
    watchTitle.numberOfLines = 1;
    watchTitle.shadowOffset = CGSizeMake(0.0, -1.0);
    watchTitle.textAlignment = NSTextAlignmentRight;
    watchTitle.textColor = [UIColor colorWithRed:0.234 green:0.234 blue:0.234 alpha:1.000];
    watchTitle.backgroundColor = [UIColor clearColor];
    watchTitle.font = [UIFont fontWithName:@"Helvetica-Neue-Light" size:25.000];
    watchTitle.marqueeType = MLRightLeft;
    [self.view addSubview:watchTitle];
    watchTut1.hidden = YES;
    watchTut2.hidden = YES;
    watchTut3.hidden = YES;
    watchTut4.hidden = YES;
    int i = rand() % 25;
    switch (i) {
        case 0:
            watchTitle.text = @"";
            watchTitle.text = @" How To Catch a Pokemon";
            [[self watchPlaceholder]loadHTMLString:@"<iframe width=\"300\" height=\"225\" src=\"http://www.youtube.com/embed/NyGv8XtKJc4\" frameborder=\"0\" allowfullscreen></iframe>" baseURL:nil];
            break;
        case 1:
            watchTitle.text = @"";
            watchTitle.text = @" Full Turn ECAL/Benjamin Muzzin";
            [[self watchPlaceholder]loadHTMLString:@"<iframe width=\"300\" height=\"225\" src=\"http://player.vimeo.com/video/74735651\" frameborder=\"0\" allowfullscreen></iframe>" baseURL:nil];
            break;
        ........
-(iAction)随机观察:(id)发送方{
MarqueeLabel*watchTitle=[[MarqueeLabel alloc]initWithFrame:CGRectMake(0,77,self.view.frame.size.width-20,44)速率:50.0f,衰减长度:10.0f];
watchTitle.numberOfLines=1;
watchTitle.shadowOffset=CGSizeMake(0.0,-1.0);
watchTitle.textAlignment=NSTextAlignmentRight;
watchTitle.textColor=[UIColor colorWithRed:0.234绿色:0.234蓝色:0.234 alpha:1.000];
watchTitle.backgroundColor=[UIColor clearColor];
watchTitle.font=[UIFont fontWithName:@“Helvetica Neue Light”大小:25.000];
watchTitle.marqueeType=MLRightLeft;
[self.view addSubview:watchTitle];
watchTut1.hidden=是;
watchTut2.hidden=是;
watchTut3.hidden=是;
watchTut4.hidden=是;
int i=rand()%25;
开关(一){
案例0:
watchTitle.text=@;
watchTitle.text=@“如何捕捉口袋妖怪”;
[[self-watchPlaceholder]loadHTMLString:@“baseURL:nil];
打破
案例1:
watchTitle.text=@;
watchTitle.text=@“整轮ECAL/Benjamin Muzzin”;
[[self-watchPlaceholder]loadHTMLString:@“baseURL:nil];
打破
........

我有25个案例(代码片段中没有全部显示),当然,每次我按下随机按钮,代码都会再次执行,创建一个新的字幕标签(这不是很好),并更改新标签文本和视频,在这种情况下,与所选的新案例相对应(这工作正常).我的问题是如何防止再次创建标签?如果我在
-(void)中设置标签viewDidLoad
在iAction中,标签未定义,因此我在提到
watchTitle
的任何地方都会收到错误。我不知道如何处理,任何可能使我走上正确轨道的反馈和解释都非常受欢迎。

在尝试时将创建代码移动到viewDidLoad(只需将字幕放在属性中并隐藏)。然后按下按钮,您只需显示它

//Define the property somewhere in your interface
@property (nonatomic, strong) MarqueeLabel* watchTitle;
//...

- (void)viewDidLoad
{
    [super viewDidLoad];

    self.watchTitle = [[MarqueeLabel alloc] initWithFrame:CGRectMake(0, 77, self.view.frame.size.width-20, 44) rate:50.0f andFadeLength:10.0f];
    self.watchTitle.numberOfLines = 1;
    self.watchTitle.shadowOffset = CGSizeMake(0.0, -1.0);
    self.watchTitle.textAlignment = NSTextAlignmentRight;
    self.watchTitle.textColor = [UIColor colorWithRed:0.234 green:0.234 blue:0.234 alpha:1.000];
    self.watchTitle.backgroundColor = [UIColor clearColor];
    self.watchTitle.font = [UIFont fontWithName:@"Helvetica-Neue-Light" size:25.000];
    self.watchTitle.marqueeType = MLRightLeft;
    self.watchTitle.hidden = YES;
    [self.view addSubview:self.watchTitle];
}

- (IBAction)randomWatch:(id)sender {
    self.watchTitle.hidden = NO;

    watchTut1.hidden = YES;
    watchTut2.hidden = YES;
    watchTut3.hidden = YES;
    watchTut4.hidden = YES;
    int i = rand() % 25;
    switch (i) {
        case 0:
            self.watchTitle.text = @"";
            self.watchTitle.text = @" How To Catch a Pokemon";
            [[self watchPlaceholder]loadHTMLString:@"<iframe width=\"300\" height=\"225\" src=\"http://www.youtube.com/embed/NyGv8XtKJc4\" frameborder=\"0\" allowfullscreen></iframe>" baseURL:nil];
            break;
        case 1:
            self.watchTitle.text = @"";
            self.watchTitle.text = @" Full Turn ECAL/Benjamin Muzzin";
            [[self watchPlaceholder]loadHTMLString:@"<iframe width=\"300\" height=\"225\" src=\"http://player.vimeo.com/video/74735651\" frameborder=\"0\" allowfullscreen></iframe>" baseURL:nil];
            break;
        ........
//在接口中的某个位置定义属性
@属性(非原子,强)MarqueeLabel*watchTitle;
//...
-(无效)viewDidLoad
{
[超级视图下载];
self.watchTitle=[[MarqueeLabel alloc]initWithFrame:CGRectMake(0,77,self.view.frame.size.width-20,44)速率:50.0f,衰减长度:10.0f];
self.watchTitle.numberOfLines=1;
self.watchTitle.shadowOffset=CGSizeMake(0.0,-1.0);
self.watchTitle.textAlignment=NSTextAlignmentRight;
self.watchTitle.textColor=[UIColor colorWithRed:0.234绿色:0.234蓝色:0.234 alpha:1.000];
self.watchTitle.backgroundColor=[UIColor clearColor];
self.watchTitle.font=[UIFont fontWithName:@“Helvetica Neue Light”大小:25.000];
self.watchTitle.marqueeType=MLRightLeft;
self.watchTitle.hidden=是;
[self.view addSubview:self.watchTitle];
}
-(iAction)随机观察:(id)发送方{
self.watchTitle.hidden=否;
watchTut1.hidden=是;
watchTut2.hidden=是;
watchTut3.hidden=是;
watchTut4.hidden=是;
int i=rand()%25;
开关(一){
案例0:
self.watchTitle.text=@”;
self.watchTitle.text=@“如何捕捉口袋妖怪”;
[[self-watchPlaceholder]loadHTMLString:@“baseURL:nil];
打破
案例1:
self.watchTitle.text=@”;
self.watchTitle.text=@“整轮ECAL/Benjamin Muzzin”;
[[self-watchPlaceholder]loadHTMLString:@“baseURL:nil];
打破
........

监视标题
范围更改为类。执行以下操作

    - (IBAction)randomWatch:(id)sender 
    {
    if(!watchTitle)
    {
       watchTitle = [[MarqueeLabel alloc] initWithFrame:CGRectMake(0, 77, self.view.frame.size.width-20, 44) rate:50.0f andFadeLength:10.0f];
        watchTitle.numberOfLines = 1;
        watchTitle.shadowOffset = CGSizeMake(0.0, -1.0);
        watchTitle.textAlignment = NSTextAlignmentRight;
        watchTitle.textColor = [UIColor colorWithRed:0.234 green:0.234 blue:0.234 alpha:1.000];
        watchTitle.backgroundColor = [UIColor clearColor];
        watchTitle.font = [UIFont fontWithName:@"Helvetica-Neue-Light" size:25.000];
        watchTitle.marqueeType = MLRightLeft;
        [self.view addSubview:watchTitle];
        watchTut1.hidden = YES;
        watchTut2.hidden = YES;
        watchTut3.hidden = YES;
        watchTut4.hidden = YES;
        int i = rand() % 25;
        switch (i) {
            case 0:
                watchTitle.text = @"";
                watchTitle.text = @" How To Catch a Pokemon";
                [[self watchPlaceholder]loadHTMLString:@"<iframe width=\"300\" height=\"225\" src=\"http://www.youtube.com/embed/NyGv8XtKJc4\" frameborder=\"0\" allowfullscreen></iframe>" baseURL:nil];
                break;
            case 1:
                watchTitle.text = @"";
                watchTitle.text = @" Full Turn ECAL/Benjamin Muzzin";
                [[self watchPlaceholder]loadHTMLString:@"<iframe width=\"300\" height=\"225\" src=\"http://player.vimeo.com/video/74735651\" frameborder=\"0\" allowfullscreen></iframe>" baseURL:nil];
                break;
            ........
-(iAction)随机观察:(id)发送方
{
如果(!watchTitle)
{
watchTitle=[[MarqueeLabel alloc]initWithFrame:CGRectMake(0,77,self.view.frame.size.width-20,44)速率:50.0f,衰减长度:10.0f];
watchTitle.numberOfLines=1;
watchTitle.shadowOffset=CGSizeMake(0.0,-1.0);
watchTitle.textAlignment=NSTextAlignmentRight;
watchTitle.textColor=[UIColor colorWithRed:0.234绿色:0.234蓝色:0.234 alpha:1.000];
watchTitle.backgroundColor=[UIColor clearColor];
watchTitle.font=[UIFont fontWithName:@“Helvetica Neue Light”大小:25.000];
watchTitle.marqueeType=MLRightLeft;
[self.view addSubview:watchTitle];
watchTut1.hidden=是;
watchTut2.hidden=是;
watchTut3.hidden=是;
watchTut4.hidden=是;
int i=rand()%25;
开关(一){
案例0:
watchTitle.text=@;
watchTitle.text=@“如何捕捉口袋妖怪”;
[[self-watchPlaceholder]loadHTMLString:@“baseURL:nil];
打破
案例1:
watchTitle.text=@;
watchTitle.text=@“整轮ECAL/Benjamin Muzzin”;
[[self-watchPlaceholder]loadHTMLString:@“baseURL:nil];
打破
........

不错,但我选择下面的一个,因为它更适合我的需要。