iPhone初学者的应用程序

时间:2013-02-25 15:41:19

标签: iphone ios objective-c cocoa

对问题进行简短的预先介绍
我申请了iOS开发人员的职位。对于这个职位,他们不需要了解Objective-C或iOS开发。必备条件是使用C / C ++和Linux平台开发的良好体验。

问题:
在采访结束后,我得到了一个任务(用语言表示它很容易被阻止,是吗?)而我无法理解是否是这样。
采访者向我展示了他的iPhone应用程序,看起来像:   enter image description here

按下/拖动该按钮会导致出现这样的条:

enter image description here

他可以滚动它并在屏幕上拖动。当他按下控制按钮时,条形消失了。

我想提前寻求借口,因为我觉得自己就像一个希望别人完成工作的人。但我只想了解如何解决这个问题。可可图书馆对我来说是一个大而新的野兽。哪个类/元素更适合用于实现这一目标?我之前使用Qt,Tkinter,WinAPI(gui编程)进行了桌面编程,但这对我没什么帮助。
我需要像面试官给我的那样编写类似的东西。我试图在互联网上找到与此相似的内容,但没有成功。

所以,我只想知道哪些类在Cocoa库中更好。 而且,如果我没有考虑到某些事情,我会很高兴(很高兴)听到你的笔记。

提前感谢您的回复!

已解决
我要感谢所有回复并且没有让我沉入这片未知海域的人 经过一周的探索,我得到了我想要的东西:

enter image description here

源代码:(我道歉,但我无法从虚拟mac os机器复制粘贴代码)

enter image description here enter image description here

现在我明白我的问题是多么宽泛和愚蠢,但无论如何也许它可以帮助某人开始。另外一个book给了我很多帮助。

5 个答案:

答案 0 :(得分:4)

没有必要了解Objective-C,但是面试官希望你创建一个简单的应用程序并将其返回给他?有趣的采访。

至于你的问题。我认为这里需要的类(除了AppDelegate和你选择的UIViewController)是:

UIButton

UIScrollView

UIImageView

按钮在这里使用是显而易见的。滚动视图再次显而易见。 imageview将是scrollview中的图标。

答案 1 :(得分:1)

看看这个:

http://www.cocoacontrols.com/platforms/ios/controls/aurosetteview

当您按下按钮时,项目会显示,当您再次按下时,它会关闭。

源代码在库中。用它来阅读。

对于您的情况,您还需要包含滚动视图。

答案 2 :(得分:1)

好吧 - 只是为了给你一些指导,说明如何开始以及如何进行,这样你就不会迷失在可可的广阔世界...... 假设你熟悉编程并在c ++和java世界中有一些不错的经验...

打开xcode。 去基于空白视图的应用程序。单视图应用程序可以。转到自动参考计数(ARC)。

xcode使用应用程序委托(您不需要此任务)为您创建模板

创建视图控制器并为iPhone视图创建xib / nib文件。 (忽略ipad视图,如果有的话)。

添加到您的视图控制器所谓的IBAction方法。一个用于顶部按钮,另一个用于其他按钮。按下按钮时应该调用动作(以及其他不需要的事件)。

正确定义在编辑xib文件时,您将在界面构建中看到该操作。添加一个按钮并将其与此动作连接(我认为内部触摸最好)。

编译这个。按下按钮后,将执行操作。在那里设置断点以确保它被调用。

现在,在此操作中,您可以调用新创建的方法showScroller和hideScroller。并创建这些方法。

现在它变得有点复杂了。 在showScroller中你必须......

  1. 创建一个UIScrollView。 (分配并初始化)
  2. 创建一些UIButtons。 (在目标-c中没有分配init的初始值)
  3. 将您的第二个IBAction方法设置为按钮的目标。
  4. 相应地将按钮放在UIScrollView中。
  5. 将UIScrollView很好地放在顶部按钮下。
  6. 将UIButtons作为子视图添加到Scroll视图的contentview。
  7. 将滚动视图作为子视图添加到self.view(即底层视图,界面构建器中的灰色视图)。
  8. 在hideScroller中你必须......

    1. 从视图中删除UIScrolView。为此,您可以从self.view中删除所有子视图,或者您必须在视图控制器中保留对某个实例变量中的滚动视图的引用。非常类似于您已经知道的C ++和Java。
    2. 替代上述场景,您可以在界面构建器中创建所有视图,并预先定义滚动视图,如在IB(界面构建器)中隐藏,在showScroller和hideScroller中,您只需将其.hidden属性设置为YES或没有。但是我有一种胆量感觉,你应该以你的背景,并且可以以编程方式执行此操作,而不是使用IB连接到代码的方式。 如果您确实遇到了陷阱并且没有将最顶部的按钮正确连接到您的代码,那么也可以通过编程方式创建该按钮。

      啊,我忘记了。创建所有这些UI元素的正确位置是ViewController类的viewDidLoad方法。您的空xcode模板中已经生成了一个空的。只需在[super viewDidLoad];电话后加入即可。

答案 3 :(得分:1)

你走了:

  1. 打开XCode并创建一个新项目。选择iOS空应用程序模板。

  2. 转到菜单,选择“文件”,“新建文件”,“Objective-C”类。将其命名为RootViewController,并选择一个子类为UIViewController

  3. 转到您的app delegate .m文件(如果您的项目名称为Test,则此文件为TestAppDelegate.m)。在文件的顶部,在#import“TestAppDelegate.h”的行下面添加另一行,表示#import“RootViewController.h”

  4. 在同一个文件中有一个名为的方法:

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    在方法结束但返回YES之前;声明添加以下行:
    self.window.rootViewController = [[RootViewController alloc] init]; 

  5. 现在转到您在步骤2中创建的RootViewController.m文件,并在文件顶部编辑界面以获得此实例变量:

    @interface RootViewController ()
    {
        UIView *menuView;
    }
    @end 

  6. 在同一个文件中找到名为 - (void)viewDidLoad的方法,并在其中添加以下代码:

    - (void)viewDidLoad
    {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    self.view.backgroundColor =[UIColor blackColor];
    UIButton *menuButton = [UIButton buttonWithType:UIButtonTypeCustom]; menuButton.frame = CGRectMake(100, 60, 50, 50); [menuButton setBackgroundImage:[UIImage imageNamed:@"menu.png"] forState:UIControlStateNormal]; [menuButton addTarget:self action:@selector(menuButtonTapped:) forControlEvents:UIControlEventTouchDown];
    CGRect menuFrame = CGRectMake(20, menuButton.frame.origin.y + 50, 300, 60); menuView = [[UIView alloc] initWithFrame:menuFrame]; menuView.backgroundColor = [UIColor purpleColor]; menuView.hidden = YES;
    UIButton *menuButtonA = [UIButton buttonWithType:UIButtonTypeRoundedRect]; menuButtonA.frame = CGRectMake(5, 5, 50, 50); [menuButtonA setTitle:@"A" forState:UIControlStateNormal]; [menuView addSubview:menuButtonA];
    UIButton *menuButtonB = [UIButton buttonWithType:UIButtonTypeRoundedRect]; menuButtonB.frame = CGRectMake(65, 5, 50, 50); [menuButtonB setTitle:@"B" forState:UIControlStateNormal]; [menuView addSubview:menuButtonB];
    UIButton *menuButtonC = [UIButton buttonWithType:UIButtonTypeRoundedRect]; menuButtonC.frame = CGRectMake(125, 5, 50, 50); [menuButtonC setTitle:@"C" forState:UIControlStateNormal]; [menuView addSubview:menuButtonC];
    UIButton *menuButtonD = [UIButton buttonWithType:UIButtonTypeRoundedRect]; menuButtonD.frame = CGRectMake(185, 5, 50, 50); [menuButtonD setTitle:@"D" forState:UIControlStateNormal]; [menuView addSubview:menuButtonD];
    UIButton *menuButtonE = [UIButton buttonWithType:UIButtonTypeRoundedRect]; menuButtonE.frame = CGRectMake(245, 5, 50, 50); [menuButtonE setTitle:@"E" forState:UIControlStateNormal]; [menuView addSubview:menuButtonE];
    [self.view addSubview:menuButton]; [self.view addSubview:menuView]; }

  7. 在该方法下方添加新方法:

    - (void)menuButtonTapped:(id)sender
    {
        if (menuView.hidden)
            menuView.hidden = NO;
        else
            menuView.hidden = YES;
    }
    

  8. 在互联网上找到一个代表菜单按钮的漂亮png图像。将它命名为menu.png并将其拖放到项目中(在左侧的“文件”菜单中)

  9. 这就是它运行项目;)

答案 4 :(得分:0)

刚刚阅读了iphone的初学者书。你必须先读一些书。首先尝试了解iphone和iphone中的基本控件。目标c中的基本操作

你的上述工作非常基础。现在你只是一步之遥就读了一本书,你将在网上获得大量的免费pdf