iphone - 在空的 iOS 应用程序中绘制一些东西

标签 iphone objective-c ios

我有 Windows 客户端开发、C++ 语言和 Flash ActionScript3 开发经验,但我是 iOS 开发的初学者......

为了使其真正详细,这篇文章可能有点太长了......

我的 Xcode 版本是 4.2.1

我创建了一个iOS应用程序(空应用程序),只有(MyAppDelegate.h)和(MyAppDelegate.m),如果我编译并运行它,将显示一个白板,仅此而已,我们都知道。

现在,我想在屏幕上画一张图片,或者一个简单的矩形或其他任何东西,我不想使用 Storyboard,所以我创建了一个新的 Objective-C 类:MyView,它继承自 UIView。并覆盖函数 - (void)drawRect:(CGRect)rect

然后我在 MyAppDelegate.m 的 didFinishLaunchingWithOptions 函数中写这样的东西:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.
    self.window.backgroundColor = [UIColor whiteColor];
    [self.window makeKeyAndVisible];
    self.window.rootViewController.view = [[MyView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    [self.window.rootViewController.view drawRect:[[UIScreen mainScreen] bounds]];
    return YES;
}

所以你看,我所做的是分配一个新的 MyView 实例并将其分配给 self.window.rootViewController.view,然后调用 drawRect 函数。 但是当我在 MyView 的 drawRect 函数中放置断点并调试时,它并没有停在那里,这意味着应用程序从未到过那里,我真的不明白为什么。

我阅读了有关 View 和 ViewController 的文档,但他们没有说明这个问题,希望你能帮助我!请告诉我应该阅读哪些内容才能进一步了解该主题

最佳答案

首先永远不要直接调用drawRect,系统会调用它。其次,在您的示例中,您没有 View Controller ,所以实际上 rootViewController 为 nil,因此没有任何效果。

您应该创建一个 View Controller 来管理您的 View ,或者直接将您的 UIView 子类添加到窗口...

[self.window addSubview:myView];

注意:您应该使用 UIViewController 来为您管理它!

如果您是 objective-c 的新手,那么我会从一个 UIView 项目而不是一个空项目开始,然后看看所有内容是如何组合在一起的。

关于iphone - 在空的 iOS 应用程序中绘制一些东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9002955/

相关文章:

iphone - 将 NSMutableArray 写入文件然后读取它

objective-c - Swift:替代父类(super class)方法来生成对象

iphone - 使用 NSURL 请求时的错误 URL

iphone - 如何在我的 iPhone 应用程序中启动 YouTube 视频?

iphone - 如何在 Objective-C 中解析文本文件?

iphone - 如何检查设备时钟时间已在 iPhone 中更改

ios - 检索 JSON 对象并填充数组 Swift

ios - uitextview 在键盘顶部快速添加像笔记应用程序一样的 uitoolbar

ios - 如果 block 在方法中的 dispatch_after 函数中使用,是否必须制作 block 的堆副本

iphone - UIImageWriteToSavedPhotosAlbum 仅保存 10 张图像中的 5 张。为什么?