1

我正在尝试通过不同方法的计时器更改我在 UIImagePickerviewController 上的 UIView 叠加层中以编程方式创建的标签文本,但是当然当我尝试以这种方式更改文本时

labelname.text = @"测试";

我收到错误“使用未声明的标识符labelname

我怎样才能参考那个特定的标签?每次计时器滴答时我都应该创建一个新标签吗?

我试图在 .h 文件中声明它,但我猜我只是在创建一个不同的标签......有什么想法吗?

4

1 回答 1

0

只需将标签作为一个整体传递给定时器函数:

假设您的标签在 ViewDidLoad 中定义如下:

- (void)viewDidLoad 
{
     //Do Something here
     UILabel  * label = [[UILabel alloc] 
     initWithFrame:CGRectMake(xcoordinateLabel, ycoordinateLabel, width, height)];
     label.backgroundColor = [UIColor clearColor];
     label.textAlignment = UITextAlignmentCenter;
     label.textColor=[UIColor whiteColor];
     label.text = @"TEST";
     [self.view addSubview:label];
     [self changeLabelText:label];
 }

你的 changeLabelText 被定义为这个有一些延迟:

- (void) changeLabelText:(UILabel *)label
{
    //Changing Values after 10s Delay
    double delayInSeconds = 10.0;
    dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, 
    (int64_t)(delayInSeconds * NSEC_PER_SEC));

    dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
    label.text = @"TESTING Change";
    });
}

您的 Timer 函数可以替换 changeLabelText

于 2015-02-24T00:38:01.113 回答