MST

星途 面试题库

面试题:Objective-C中自定义控件如何实现基本的绘制

在Objective-C里,假设要自定义一个继承自UIView的控件,描述一下实现基本绘制(比如绘制一个矩形)的步骤,包括需要重写的方法以及绘制相关的代码逻辑。
46.7万 热度难度
编程语言Objective-C

知识考点

AI 面试

面试题答案

一键面试
  1. 重写的方法
    • 需要重写drawRect:方法。drawRect:方法是UIView中用于执行视图内容绘制的方法,当视图需要更新显示内容时会被调用。
  2. 绘制相关代码逻辑(以绘制矩形为例)
#import "CustomView.h"

@implementation CustomView

- (void)drawRect:(CGRect)rect {
    // 获取当前上下文
    CGContextRef context = UIGraphicsGetCurrentContext();
    // 设置矩形的位置和大小
    CGRect rectangle = CGRectMake(50, 50, 200, 100);
    // 设置绘制颜色(这里以红色为例)
    [[UIColor redColor] set];
    // 绘制矩形路径
    CGContextAddRect(context, rectangle);
    // 填充矩形
    CGContextFillPath(context);
}

@end

在上述代码中:

  • 首先通过UIGraphicsGetCurrentContext()获取当前的图形上下文,这是进行绘制操作的基础。
  • 然后定义了一个矩形的CGRect结构体,指定了矩形在视图中的位置和大小。
  • 接着使用[UIColor redColor]获取红色,并调用set方法设置当前绘制颜色为红色。
  • 再通过CGContextAddRect函数将矩形路径添加到当前上下文中。
  • 最后调用CGContextFillPath函数对矩形路径进行填充,从而完成矩形的绘制。