任何人都可以解释直接和上下文动画吗?

时间:2013-09-03 02:26:05

标签: ios objective-c drawrect cgcontext setneedsdisplay

我对iOS非常新,所以我对此并不了解。 我知道如何制作UIView(及其子视图),但我不知道drawRect

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

有人可以解释何时调用drawRect以及如何移动它?

2 个答案:

答案 0 :(得分:1)

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

- (void)drawRect:(CGRect)rect{

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

要让元素滑出,您必须在显示NSTimer之后调用UIView(可能会延迟使用performSelector:withObject:afterDelay:)并更改{CGRect的属性1}}你想在里面写NSString。您只需设置一个方法,您的NSTimer将在特定时间间隔内调用该方法,该方法也会更新UIView

- (void)updateView{

  //create a rect
  rectForFrame = CGRectMake....;
  [self setNeedsDisplay];
}

答案 1 :(得分:0)

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

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