ios - 谁能解释一下绘制矩形和上下文动画?

标签 ios objective-c drawrect cgcontext setneedsdisplay

我对 iOS 还很陌生,所以我不太了解。 我知道如何制作 UIView (及其 subview ),但我不知道 drawRect

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

有人能解释一下drawRect何时被调用以及如何移动它吗?

最佳答案

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

- (void)drawRect:(CGRect)rect{

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

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

- (void)updateView{

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

关于ios - 谁能解释一下绘制矩形和上下文动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18583184/

相关文章:

iphone - 关于使用 Accelerate.framework 的问题

objective-c - UITableView 实际上并没有重新加载它的数据,即使数据源方法正在返回新数据

iOS : WHO'S in charge of refreshing UI/Screen while UITableView's scrolling?

ios - 以编程方式计算 iOS 应用程序的 FPS(每秒帧数)有多少种方法?

ios - Xamarin中如何正确的给CBPeripheralManager添加服务

ios - 将 Swift 字符串转换为数据时出现 EXC_BAD_ACCESS

ios 快速播放从cloudkit上传的视频

objective-c - 在 Objective-C 中前向声明枚举

ios - 基于 drawRect 的 UIView 的大小

c++ - Cocos2d replaceScene 不释放旧场景