gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 19:20:47 26 4
gpt4 key购买 nike

我有 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com