您的位置:首页 > 移动开发 > IOS开发

[iOS]iOS编程实践第10周作业终于在11周周六晚完成niao

2013-11-16 21:07 316 查看
因为第一次课没去上,所以对于Interface Builder的用法毫无头绪,又自己翻书学了一遍,终于迟了1天之后交上了na。

题目:

建立一个Single View Application,通过Label、TextFiled、Button等实现以下功能。 

1、用户通过输入框输入字符串,将字符串倒置后输出在窗口上。

2、提示用户输入数字,判断数字是否为素数,并且通过主窗口上的Label控件告知用户。

3、让用户输入一个网址,点击后启动内置浏览器打开该网址。

解答:

//
//  ViewController.h
//  Homework10.3
//
//  Created by Zion on 13-11-16.
//  Copyright (c) 2013年 Zion. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController

@property (strong, nonatomic) IBOutlet UILabel *labelReversed;
@property (strong, nonatomic) IBOutlet UITextField *strInput;

@property (strong, nonatomic) IBOutlet UILabel *labelPrime;
@property (strong, nonatomic) IBOutlet UITextField *numberInput;

@property (strong, nonatomic) IBOutlet UITextField *linkInput;

- (IBAction)buttonReverse:(id)sender;
- (IBAction)buttonPrime:(id)sender;
- (IBAction)buttonLink:(id)sender;
- (IBAction)textFiledReturnEditing:(id)sender;
- (IBAction)backgroundTap:(id)sender;

@end
//
//  ViewController.m
//  Homework10.3
//
//  Created by Zion on 13-11-16.
//  Copyright (c) 2013年 Zion. All rights reserved.
//

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}

- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}

@synthesize labelReversed;
@synthesize strInput;
@synthesize labelPrime;
@synthesize numberInput;
@synthesize linkInput;

- (IBAction)textFiledReturnEditing:(id)sender
{
[sender resignFirstResponder];
}

- (IBAction)backgroundTap:(id)sender {
[strInput resignFirstResponder];
[numberInput resignFirstResponder];
[linkInput resignFirstResponder];
}

- (IBAction)buttonReverse:(id)sender {
[strInput resignFirstResponder];
NSString *myString = self.strInput.text;
NSMutableString *reversedString = [NSMutableString string];
NSInteger charIndex = [myString length];
while (charIndex > 0) {
charIndex--;
NSRange subStrRange = NSMakeRange(charIndex, 1);
[reversedString appendString:[myString substringWithRange:subStrRange]];
}
self.labelReversed.text = reversedString;

}

- (IBAction)buttonPrime:(id)sender {
[numberInput resignFirstResponder];
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
NSNumber *myNumber = [numberFormatter numberFromString:self.numberInput.text];
NSInteger intNumber = [myNumber integerValue];
bool isPrime = 1;
for (NSInteger i = 2; i < intNumber; i++) {
if (0 == intNumber % i) {
isPrime = 0;
break;
}
}
if (0 == isPrime) {
self.labelPrime.text = @"This number is not a prime number";
}
else
self.labelPrime.text = @"This number is a prime number";
}

- (IBAction)buttonLink:(id)sender {
[linkInput resignFirstResponder];
NSURL *link = [NSURL URLWithString:self.linkInput.text];
[[UIApplication sharedApplication] openURL:link];
}

@end


界面效果:

通过Google到的方法实现了点击return隐藏虚拟键盘,点击空白处隐藏虚拟键盘,点击button隐藏虚拟键盘





存在的问题:

1、未对输入内容做内容判定。

2、界面不完善,没有解决弹出键盘对输入框的遮挡(听说Android对这一点解决得很好)。

感受:

由于对StoryBoard和代码的关系了解得不够深入,造成作业完成不及时,不过还好通过自学搞定了。

现在存在的主要矛盾是自身水平和试图完成的水平之间的矛盾,本想做一个底部TabBar来切换三种功能,但是对多视图和控件的使用完全一窍不通,时间又很紧急,所以做出了这么一个shit一样的东西。第一次做有GUI的东西,感觉貌似跟写代码相比,更喜欢交互设计的样子。

在高数考试之前真的没办法在这门课上花大工夫,所以只好选择先保证能跟得上不至于半途而废,现在的班级里貌似人都走得差不多了吧,只有个位数的人还在学,想到这里有了一点成就感呢hehe。

推荐使用为知笔记(Wiz),它是电脑、手机、平板都能用的云笔记软件,使用我的邀请注册可获VIP体验:http://www.wiz.cn/i/8e5bc961
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ios