0

我是新手iOS,所以我不太了解。我知道如何制作UIView(及其子视图),但我不知道drawRect

我创建了一个继承自方法UIView并在initWithFrame方法中创建子视图的类。我想在添加后绘制一个NSStringusing并在 5 秒后将其移出视图。CGContextsubViews

谁能解释何时drawRect调用以及如何移动它?

4

2 回答 2

1

此代码可帮助您绘制NSString之前存储在_content中的 a :

- (void)drawRect:(CGRect)rect{

    CGContextRef context = UIGraphicsGetCurrentContext();
    [_content drawInRect:rectForFrame
                withFont:[UIFont fontWithName:kFontMedium size:15.0f]
           lineBreakMode:NSLineBreakByWordWrapping
               alignment:NSTextAlignmentCenter];
}

要让元素滑出,您必须在显示NSTimer后调用 a UIView(可能会延迟使用performSelector:withObject:afterDelay:)并更改CGRect要写入NSString内部的属性。您可以设置一个方法,该方法将NSTimer在特定时间间隔内由您调用,该方法也会更新UIView.

- (void)updateView{

  //create a rect
  rectForFrame = CGRectMake....;
  [self setNeedsDisplay];
}
于 2014-04-01T09:27:57.380 回答
0

一种方法是绘制字符串,然后启动NSTimer. 启动一个 5 秒计时器,当它触发时,您可以移动它。

至于何时-drawRect:调用 - 每当您的视图需要更新时都会调用它。当您的视图首次被操作系统显示时,它将被调用。之后,它通常会在它改变大小或形状时被调用,或者当你的代码调用时[myView setNeedsDisplay:YES],它会告诉操作系统更新它。

于 2013-09-03T02:47:05.523 回答