ios - 简单的 UIView drawRect 未被调用

标签 ios uiview

我不知道这里的问题是什么。我有一个非常简单的 UIViewController 和一个非常简单的 viewDidLoad 方法:

-(void)viewDidLoad {

    NSLog(@"making game view");
    GameView *v = [[GameView alloc] initWithFrame:CGRectMake(0,0,320,460)];

    [self.view addSubview:v];

    [super viewDidLoad];
}

我的 GameView 初始化如下:

@interface GameView : UIView {

它只是有一个新的 drawRect 方法:

- (void)drawRect:(CGRect)rect
{

    [super drawRect:rect];

    NSLog(@"drawing");
}

在我的控制台中,我看到正在打印“制作游戏 View ”,但从未打印过“绘图”。为什么?为什么我的自定义 UIView 中的 drawRect 方法没有被调用。我实际上只是想在屏幕上画一个圆圈。

最佳答案

您是否尝试过在 View 的初始化中指定框架?因为您正在创建一个自定义的 UIView,所以您需要在调用绘制方法之前指定 View 的框架。

尝试将您的 viewDidLoad 更改为以下内容:

NSLog(@"making game view");
GameView *v = [[GameView alloc] initWithFrame:CGRectMake(0,0,320,460)];


if (v == nil)
    NSLog(@"was not allocated and/or initialized");

[self.view addSubview:v];

if (v.superview == nil)
    NSLog(@"was not added to view");

[super viewDidLoad];

让我知道你得到了什么。

关于ios - 简单的 UIView drawRect 未被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6271681/

相关文章:

ios - 使用 KVC 在 NSArray 中获取 NSValue 转换的 CGPoints 的最小/最大坐标

ios - 自定义 UIView 变量/属性访问

ios - UIView 自动布局 : hierarchy of subviews VS minimum views hierarchy?

uiview - CGRect 的 setFrame 在 iOS 8.0 上丢失了原始值

xcode - 仅在界面构建器中使用 AutoLayout 在 UIScrollView 中居中 UIView

ios - 标签栏项目色调颜色

php - 我应该如何修改我的 php web 服务来处理一个而不是多个调用?

ios - 无法以数字方式对 NSArray 中的自定义对象进行排序

ios - iOS-TableView删除部分中的行

ios - UIView 添加/删除 subview 与隐藏/显示的速度