- 浏览: 25578 次
- 性别:
- 来自: 沈阳
文章分类
最新评论
转载一片ipad开发文章,以备后用。
感谢作者分享
iPad开发乱乱记
浏览: 714 评论: 0 发表评论 作者: 聖騎天下
iPad开发相关的技巧、知识等等的笔记,比较乱,姑且称作乱乱记吧:P
退回输入键盘:
查看源代码打印帮助
1 - (BOOL) textFieldShouldReturn:(id)textField{
2 [textField resignFirstResponder];
3 }
CGRect
查看源代码打印帮助
1 CGRect frame = CGRectMake (origin.x, origin.y, size.width, size.height);矩形
2 NSStringFromCGRect(someCG) 把CGRect结构转变为格式化字符串;
3 CGRectFromString(aString) 由字符串恢复出矩形;
4 CGRectInset(aRect) 创建较小或较大的矩形(中心点相同),+较小 -较大
5 CGRectIntersectsRect(rect1, rect2) 判断两矩形是否交叉,是否重叠
6 CGRectZero 高度和宽度为零的/位于(0,0)的矩形常量
CGPoint & CGSize
查看源代码打印帮助
1 CGPoint aPoint = CGPointMake(x, y); CGSize aSize = CGSizeMake(width, height);
设置透明度
查看源代码打印帮助
1 [myView setAlpha:value]; (0.0 < value < 1.0)
设置背景色
查看源代码打印帮助
1 [myView setBackgroundColor:[UIColor redColor]];
2 (blackColor;darkGrayColor;lightGrayColor;whiteColor;grayColor; redColor; greenColor; blueColor; cyanColor;yellowColor;magentaColor;
3 orangeColor;purpleColor;brownColor; clearColor; )
自定义颜色:
查看源代码打印帮助
1 UIColor *newColor = [[UIColor alloc] initWithRed:(float) green:(float) blue:(float) alpha:(float)]; 0.0~1.0
宽度和高度
查看源代码打印帮助
1 768X1024 1024X768 状态栏高 20 像素高 导航栏 工具栏 44像素高
隐藏状态栏:
查看源代码打印帮助
1 [[UIApplication shareApplication] setStatusBarHidden: YES animated:NO]
横屏:
查看源代码打印帮助
1 [[UIApplication shareApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRight].
2 orientation == UIInterfaceOrientationLandscapeLeft
3 window=[[UIWindow alloc] initWithFrame:[UIScreen mainScreen] bounds];全屏
自动适应父视图大小:
查看源代码打印帮助
1 aView.autoresizingSubviews = YES;
2 aView.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight);
定义按钮
查看源代码打印帮助
1 UIButton *scaleUpButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
2 [scaleUpButton setTitle:@"放 大" forState:UIControlStateNormal];
3 scaleUpButton.frame = CGRectMake(40, 420, 100, 40);
4 [scaleUpButton addTarget:self action:@selector(scaleUp) forControlEvents:UIControlEventTouchUpInside];
设置视图背景图片
查看源代码打印帮助
1 UIImageView *aView;
2 [aView setImage:[UIImage imageNamed:@”name.png”]];
3 view1.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"image1.png"]];
4
5 UISlider *slider = (UISlider *) sender;
6 NSString *newText = [[NSString alloc] initWithFormat:@”%d”, (int)(slider.value + 0.5f)];
7 label.text = newText;
活动表单 <UIActionSheetDelegate>
查看源代码打印帮助
01 - (IBActive) someButtonPressed:(id) sender
02 {
03 UIActionSheet *actionSheet = [[UIActionSheet alloc]
04 initWithTitle:@”Are you sure?”
05 delegate:self
06 cancelButtonTitle:@”No way!”
07 destructiveButtonTitle:@”Yes, I’m Sure!”
08 otherButtonTitles:nil];
09 [actionSheet showInView:self.view];
10 [actionSheet release];
11 }
警告视图 <UIAlertViewDelegate>
查看源代码打印帮助
01 - (void) actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger) buttonIndex
02 {
03 if(buttonIndex != [actionSheet cancelButtonIndex])
04 {
05 NSString *message = [[NSString alloc] initWithFormat:@”You can
06 breathe easy, everything went OK.”];
07 UIAlertView *alert = [[UIAlertView alloc]
08 initWithTitle:@”Something was done”
09 message:message
10 delegate:self
11 cancelButtonTitle:@”OK”
12 otherButtonTitles:nil];
13 [alert show];
14 [alert release];
15 [message release];
16 }
17 }
动画效果
查看源代码打印帮助
01 -(void)doChange:(id)sender
02 {
03 if(view2 == nil)
04 {
05 [self loadSec];
06 }
07 [UIView beginAnimations:nil context:NULL];
08 [UIView setAnimationDuration:1];
09 [UIView setAnimationTransition:([view1 superview] ? UIViewAnimationTransitionFlipFromLeft : UIViewAnimationTransitionFlipFromRight)forView : self.view cache:YES];
10
11 if([view1 superview]!= nil)
12 {
13 [view1 removeFromSuperview];
14 [self.view addSubview:view2];
15
16 }else {
17
18 [view2 removeFromSuperview];
19 [self.view addSubview:view1];
20 }
21 [UIView commitAnimations];
22 }
Table View <UITableViewDateSource>
查看源代码打印帮助
01 #pragma mark -
02 #pragma mark Table View Data Source Methods
03 //指定分区中的行数,默认为1
04 - (NSInteger)tableView:(UITableView *)tableView
05 numberOfRowsInSection:(NSInteger)section
06 {
07 return [self.listData count];
08 }
09
10 //设置每一行cell显示的内容
11 - (UITableViewCell *)tableView:(UITableView *)tableView
12 cellForRowAtIndexPath:(NSIndexPath *)indexPath
13 {
14 static NSString *SimpleTableIndentifier = @"SimpleTableIndentifier";
15 UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:SimpleTableIndentifier];
16 if (cell == nil) {
17 cell = [[[UITableViewCell alloc]
18 initWithStyle:UITableViewCellStyleSubtitle
19 reuseIdentifier:SimpleTableIndentifier]
20 autorelease];
21 }
22 UIImage *image = [UIImage imageNamed:@"13.gif"];
23 cell.imageView.image = image;
24
25 NSUInteger row = [indexPath row];
26 cell.textLabel.text = [listData objectAtIndex:row];
27 cell.textLabel.font = [UIFont boldSystemFontOfSize:20];
28
29 if(row < 5)
30 cell.detailTextLabel.text = @"Best friends";
31 else
32 cell.detailTextLabel.text = @"friends";
33 return cell;
34 }
图像:如果设置图像,则它显示在文本的左侧
文本标签:这是单元的主要文本(UITableViewCellStyleDefault 只显示文本标签)
详细文本标签:这是单元的辅助文本,通常用作解释性说明或标签
查看源代码打印帮助
01 UITableViewCellStyleSubtitle
02 UITableViewCellStyleDefault
03 UITableViewCellStyleValue1
04 UITableViewCellStyleValue2
05
06 <UITableViewDelegate>
07 #pragma mark -
08 #pragma mark Table View Delegate Methods
09 //把每一行缩进级别设置为其行号
10 - (NSInteger)tableView:(UITableView *)tableView indentationLevelForRowAtIndexPath:(NSIndexPath *)indexPath
11 {
12 NSUInteger row = [indexPath row];
13 return row;
14 }
15 //获取传递过来的indexPath值
16 - (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath
17 {
18 NSUInteger row = [indexPath row];
19 if (row == 0)
20 return nil;
21 return indexPath;
22 }
23
24 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
25 {
26 NSUInteger row = [indexPath row];
27 NSString *rowValue = [listData objectAtIndex:row];
28 NSString *message = [[NSString alloc] initWithFormat:@"You selected %@",rowValue];
29 UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Row Selected"
30 message:message
31 delegate:nil
32 cancelButtonTitle:@"Yes, I did!"
33 otherButtonTitles:nil];
34 [alert show];
35 [alert release];
36 [message release];
37 [tableView deselectRowAtIndexPath:indexPath animated:YES];
38 }
39
40 //设置行的高度
41 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
42 {
43 return 40;
44 }
随机数的使用
查看源代码打印帮助
1 头文件的引用
2 #import <time.h>
3 #import <mach/mach_time.h>
4 srandom()的使用
5 srandom((unsigned)(mach_absolute_time() & 0xFFFFFFFF));
6 直接使用 random() 来调用随机数
在UIImageView 中旋转图像
查看源代码打印帮助
1 float rotateAngle = M_PI;
2 CGAffineTransform transform =CGAffineTransformMakeRotation(rotateAngle);
3 imageView.transform = transform;
以上代码旋转imageView, 角度为rotateAngle, 方向可以自己测试哦!
在Quartz中如何设置旋转点
查看源代码打印帮助
1 UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"bg.png"]];
2 imageView.layer.anchorPoint = CGPointMake(0.5, 1.0);
这个是把旋转点设置为底部中间。记住是在QuartzCore.framework中才得到支持。
创建.plist文件并存储
-
查看源代码打印帮助
01 NSString *errorDesc; //用来存放错误信息
02 NSMutableDictionary *rootObj = [NSMutableDictionary dictionaryWithCapacity:4]; //NSDictionary, NSData等文件可以直接转化为plist文件
03 NSDictionary *innerDict;
04 NSString *name;
05 Player *player;
06 NSInteger saveIndex;
07 for(int i = 0; i < [playerArray count]; i++) {
08 player = nil;
09 player = [playerArray objectAtIndex:i];
10 if(player == nil)
11 break;
12 name = player.playerName;// This “Player1″ denotes the player name could also be the computer name
13 innerDict = [self getAllNodeInfoToDictionary:player];
14 [rootObj setObject:innerDict forKey:name]; // This “Player1″ denotes the person who start this game
15 }
16 player = nil;
17 NSData *plistData = [NSPropertyListSerialization dataFromPropertyList:(id)rootObj format:NSPropertyListXMLFormat_v1_0 errorDescription:&errorDesc];
最后2行可以忽略,只是给rootObj添加一点内容。这个plistData为创建好的plist文件,用其writeToFile方法就可以写成文件。下面是代码:
查看源代码打印帮助
01 /*得到移动设备上的文件存放位置*/
02 NSString *documentsPath = [self getDocumentsDirectory];
03 NSString *savePath = [documentsPath stringByAppendingPathComponent:@"save.plist"];
04
05 /*存文件*/
06 if (plistData) {
07 [plistData writeToFile:savePath atomically:YES];
08 }
09 else {
10 NSLog(errorDesc);
11 [errorDesc release];
12 }
13
14 - (NSString *)getDocumentsDirectory {
15 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
16 return [paths objectAtIndex:0];
17 }
读取plist文件并转化为NSDictionary
查看源代码打印帮助
1 NSString *documentsPath = [self getDocumentsDirectory];
2 NSString *fullPath = [documentsPath stringByAppendingPathComponent:@"save.plist"];
3 NSMutableDictionary* plistDict = [[NSMutableDictionary alloc] initWithContentsOfFile:fullPath];
读取一般性文档文件
查看源代码打印帮助
01 NSString *tmp;
02 NSArray *lines; /*将文件转化为一行一行的*/
03 lines = [[NSString stringWithContentsOfFile:@"testFileReadLines.txt"]
04 componentsSeparatedByString:@”\n”];
05 NSEnumerator *nse = [lines objectEnumerator];
06 // 读取<>里的内容
07 while(tmp = [nse nextObject]) {
08 NSString *stringBetweenBrackets = nil;
09 NSScanner *scanner = [NSScanner scannerWithString:tmp];
10 [scanner scanUpToString:@"<" intoString:nil];
11 [scanner scanString:@"<" intoString:nil];
12 [scanner scanUpToString:@">" intoString:&stringBetweenBrackets];
13 NSLog([stringBetweenBrackets description]);
14 }
对于读写文件,还有补充,暂时到此。随机数和文件读写在游戏开发中经常用到。所以把部分内容放在这,以便和大家分享,也当记录,便于查找。
隐藏NavigationBar
查看源代码打印帮助
1 [self.navigationController setNavigationBarHidden:YES animated:YES];
在想隐藏的ViewController中使用就可以了。
如果无法保证子类行为的一致性,那么就用委托
If the subClass cann’t keep with superClass,use delegate rather than inheritance.
屏幕上看到的,都是UIVew
Everything you see on Screen is UIView.
如果对性能要求高,慎用Interface Build
if application’s performance is important,be discreet for the interface build.
copy是创建,retain是引用
the copy operation is create a new one,but the retain operation is just a reference.
alloc需要release,convenient不需要release
alloc method need corresponding release method,but convenient method not.
加载到NSArray/NSMutableArray里的对象,不需要负责release
The objects added to NSArray/NSMutableArray need not to be released.
IBOutlet,IBAction为你开启了访问Interface Build中对象的大门
IBOutlet and IBAction open the door to access the objects in Interface build.
UIApplicationDelegate负责应用程序的生命周期,而UIViewController负责View的生命周期
UIApplicationDelegate is responsible for the application life cycle,but UIViewController for the UIView.
为了程序的健壮性,请尽量实现Delegate的生命周期函数
if you want to develop a robust application,implement the life cycle methods as more as possbile.
you触摸的不是UIEvent,而是NSSet的UIView
what you touch on screen is not UIEvent but UIView
UITextField不响应键盘:
查看源代码打印帮助
1 方法1: TextField的的Touch Cancel响应中,添加[textFied resignFirstResponder];
2
3 方法: - (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{
4
5 [textFied resignFirstResponder]; }
更改响应键盘return按钮:
查看源代码打印帮助
01 TextField.returnKeyType=UIReturnKeyDone;
02 select:
03 UIReturnKeyDefault,
04 UIReturnKeyGo,
05 UIReturnKeyGoogle,
06 UIReturnKeyJoin,
07 UIReturnKeyNext,
08 UIReturnKeyRoute,
09 UIReturnKeySearch,
10 UIReturnKeySend,
11 UIReturnKeyYahoo,
12 UIReturnKeyDone,
13 UIReturnKeyEmergencyCall,
尺寸问题:
查看源代码打印帮助
1 iPhone应用程序图标大小:57*57;
2 iPhone全屏UIView大小:320*460 添加UITabBar后大小:320*411
3 UITabelViewCell默认大小: 320*44
绘制控件方法
查看源代码打印帮助
01 //--alloc
02 -(UITextField *)GetDefaultTextField:(CGRect)frame{
03
04 UITextField *textField=[[UITextField alloc] initWithFrame:frame];
05 textField.borderStyle=UITextBorderStyleRoundedRect;
06 textField.font=[UIFont fontWithName:@"Arial" size:12.0];
07 textField.textAlignment=UITextAlignmentCenter;
08 textField.contentVerticalAlignment=UIControlContentVerticalAlignmentCenter;
09 textField.keyboardType=UIKeyboardTypeNumbersAndPunctuation;
10 textField.returnKeyType=UIReturnKeyDone;
11 textField.delegate=self;
12 return textField;
13
14 }
15 //--alloc
16 -(UILabel *)GetDefaultLabel:(CGRect)frame{
17
18 UILabel *label = [[UILabel alloc] initWithFrame: frame];
19 label.textAlignment=UITextAlignmentCenter;
20 label.textColor=[UIColor blackColor];
21 label.backgroundColor=[UIColor clearColor];
22 label.font=[UIFont boldSystemFontOfSize:12.0];
23 return label;
24 }
25 //--alloc
26 -(UIButton *)GetDefaultButton:(CGRect)frame{
27
28 UIButton *button=[[UIButton alloc] initWithFrame:frame];
29 [button setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];
30 [button setTitleColor:[UIColor blackColor] forState:UIControlStateHighlighted];
31 [button setContentHorizontalAlignment:UIControlContentHorizontalAlignmentLeft];
32 [button.titleLabel setFont:[UIFont boldSystemFontOfSize:14.0]];
33 [button.titleLabel setLineBreakMode:UILineBreakModeCharacterWrap];
34 [button addTarget:self action:@selector(btnTradeTouchUpInside:) forControlEvents:UIControlEventTouchUpInside];
35 [button setContentHorizontalAlignment:UIControlContentHorizontalAlignmentCenter];
36
37 [button setBackgroundImage:[UIImage imageNamed:@"png1.png"] forState:UIControlStateNormal];
38 [button setBackgroundColor:[UIColor lightGrayColor]];
39 button.tag=kButtonTag;
40
41 return button;}
多使用宏定义常量。tag,frame大小,一些判断标志位。
查看源代码打印帮助
1 #define kIndexValueTag 1
苹果屏幕截图快捷键
一般在Mac上用Command-Shif-3/4来截图。注:Command=苹果键 其实还有几个辅助键,来起到不同的截图功能……
查看源代码打印帮助01 1)Command-Shift-3(适用于OS9,10.1X和10.2)
02 将整个屏幕拍下并保存到桌面。
03 2)Command-Shift-4(适用于OS9,10.1X和10.2)
04 将屏幕的一部分拍下并保存到桌面。当按下着几个键后,光标会变为一个十字,可以拖拉来选取拍报区域。
05 3)Command-Shift-Control-3(适用于OS9和10.2)
06 将整个屏幕拍下并保存到剪贴板,可以Command+V直接粘贴到如Photoshop等软件中编辑。
07 4)Command-Shift-Control-4(适用于OS9和10.2)
08 将屏幕的一部分拍下并保存到剪贴板。
09 5)Command-Shift-4再按空格键(适用于10.2)
10 光标会变成一个照相机,点击可拍下当前窗口或菜单或Dock以及图标等,只要将照相机移动到不用区域(有效区域会显示为浅蓝色)点击。
11 6)Command-Shift-Control-4再按空格键(适用于10.2)
12 将选取的窗口或其他区域的快照保存到剪贴板。
13 7)Command-Shift-Capslock-4(适用于OS9)
14 将当前的窗口拍下并保存到桌面。
15Command-Shift-Capslock-Control-4(适用于OS9)
16 将当前的窗口拍下并保存到剪贴板。
iPad开发乱乱记
浏览: 714 评论: 0 发表评论 作者: 聖騎天下
iPad开发相关的技巧、知识等等的笔记,比较乱,姑且称作乱乱记吧:P
退回输入键盘:
查看源代码打印帮助
1 - (BOOL) textFieldShouldReturn:(id)textField{
2 [textField resignFirstResponder];
3 }
CGRect
查看源代码打印帮助
1 CGRect frame = CGRectMake (origin.x, origin.y, size.width, size.height);矩形
2 NSStringFromCGRect(someCG) 把CGRect结构转变为格式化字符串;
3 CGRectFromString(aString) 由字符串恢复出矩形;
4 CGRectInset(aRect) 创建较小或较大的矩形(中心点相同),+较小 -较大
5 CGRectIntersectsRect(rect1, rect2) 判断两矩形是否交叉,是否重叠
6 CGRectZero 高度和宽度为零的/位于(0,0)的矩形常量
CGPoint & CGSize
查看源代码打印帮助
1 CGPoint aPoint = CGPointMake(x, y); CGSize aSize = CGSizeMake(width, height);
设置透明度
查看源代码打印帮助
1 [myView setAlpha:value]; (0.0 < value < 1.0)
设置背景色
查看源代码打印帮助
1 [myView setBackgroundColor:[UIColor redColor]];
2 (blackColor;darkGrayColor;lightGrayColor;whiteColor;grayColor; redColor; greenColor; blueColor; cyanColor;yellowColor;magentaColor;
3 orangeColor;purpleColor;brownColor; clearColor; )
自定义颜色:
查看源代码打印帮助
1 UIColor *newColor = [[UIColor alloc] initWithRed:(float) green:(float) blue:(float) alpha:(float)]; 0.0~1.0
宽度和高度
查看源代码打印帮助
1 768X1024 1024X768 状态栏高 20 像素高 导航栏 工具栏 44像素高
隐藏状态栏:
查看源代码打印帮助
1 [[UIApplication shareApplication] setStatusBarHidden: YES animated:NO]
横屏:
查看源代码打印帮助
1 [[UIApplication shareApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRight].
2 orientation == UIInterfaceOrientationLandscapeLeft
3 window=[[UIWindow alloc] initWithFrame:[UIScreen mainScreen] bounds];全屏
自动适应父视图大小:
查看源代码打印帮助
1 aView.autoresizingSubviews = YES;
2 aView.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight);
定义按钮
查看源代码打印帮助
1 UIButton *scaleUpButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
2 [scaleUpButton setTitle:@"放 大" forState:UIControlStateNormal];
3 scaleUpButton.frame = CGRectMake(40, 420, 100, 40);
4 [scaleUpButton addTarget:self action:@selector(scaleUp) forControlEvents:UIControlEventTouchUpInside];
设置视图背景图片
查看源代码打印帮助
1 UIImageView *aView;
2 [aView setImage:[UIImage imageNamed:@”name.png”]];
3 view1.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"image1.png"]];
4
5 UISlider *slider = (UISlider *) sender;
6 NSString *newText = [[NSString alloc] initWithFormat:@”%d”, (int)(slider.value + 0.5f)];
7 label.text = newText;
活动表单 <UIActionSheetDelegate>
查看源代码打印帮助
01 - (IBActive) someButtonPressed:(id) sender
02 {
03 UIActionSheet *actionSheet = [[UIActionSheet alloc]
04 initWithTitle:@”Are you sure?”
05 delegate:self
06 cancelButtonTitle:@”No way!”
07 destructiveButtonTitle:@”Yes, I’m Sure!”
08 otherButtonTitles:nil];
09 [actionSheet showInView:self.view];
10 [actionSheet release];
11 }
警告视图 <UIAlertViewDelegate>
查看源代码打印帮助
01 - (void) actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger) buttonIndex
02 {
03 if(buttonIndex != [actionSheet cancelButtonIndex])
04 {
05 NSString *message = [[NSString alloc] initWithFormat:@”You can
06 breathe easy, everything went OK.”];
07 UIAlertView *alert = [[UIAlertView alloc]
08 initWithTitle:@”Something was done”
09 message:message
10 delegate:self
11 cancelButtonTitle:@”OK”
12 otherButtonTitles:nil];
13 [alert show];
14 [alert release];
15 [message release];
16 }
17 }
动画效果
查看源代码打印帮助
01 -(void)doChange:(id)sender
02 {
03 if(view2 == nil)
04 {
05 [self loadSec];
06 }
07 [UIView beginAnimations:nil context:NULL];
08 [UIView setAnimationDuration:1];
09 [UIView setAnimationTransition:([view1 superview] ? UIViewAnimationTransitionFlipFromLeft : UIViewAnimationTransitionFlipFromRight)forView : self.view cache:YES];
10
11 if([view1 superview]!= nil)
12 {
13 [view1 removeFromSuperview];
14 [self.view addSubview:view2];
15
16 }else {
17
18 [view2 removeFromSuperview];
19 [self.view addSubview:view1];
20 }
21 [UIView commitAnimations];
22 }
Table View <UITableViewDateSource>
查看源代码打印帮助
01 #pragma mark -
02 #pragma mark Table View Data Source Methods
03 //指定分区中的行数,默认为1
04 - (NSInteger)tableView:(UITableView *)tableView
05 numberOfRowsInSection:(NSInteger)section
06 {
07 return [self.listData count];
08 }
09
10 //设置每一行cell显示的内容
11 - (UITableViewCell *)tableView:(UITableView *)tableView
12 cellForRowAtIndexPath:(NSIndexPath *)indexPath
13 {
14 static NSString *SimpleTableIndentifier = @"SimpleTableIndentifier";
15 UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:SimpleTableIndentifier];
16 if (cell == nil) {
17 cell = [[[UITableViewCell alloc]
18 initWithStyle:UITableViewCellStyleSubtitle
19 reuseIdentifier:SimpleTableIndentifier]
20 autorelease];
21 }
22 UIImage *image = [UIImage imageNamed:@"13.gif"];
23 cell.imageView.image = image;
24
25 NSUInteger row = [indexPath row];
26 cell.textLabel.text = [listData objectAtIndex:row];
27 cell.textLabel.font = [UIFont boldSystemFontOfSize:20];
28
29 if(row < 5)
30 cell.detailTextLabel.text = @"Best friends";
31 else
32 cell.detailTextLabel.text = @"friends";
33 return cell;
34 }
图像:如果设置图像,则它显示在文本的左侧
文本标签:这是单元的主要文本(UITableViewCellStyleDefault 只显示文本标签)
详细文本标签:这是单元的辅助文本,通常用作解释性说明或标签
查看源代码打印帮助
01 UITableViewCellStyleSubtitle
02 UITableViewCellStyleDefault
03 UITableViewCellStyleValue1
04 UITableViewCellStyleValue2
05
06 <UITableViewDelegate>
07 #pragma mark -
08 #pragma mark Table View Delegate Methods
09 //把每一行缩进级别设置为其行号
10 - (NSInteger)tableView:(UITableView *)tableView indentationLevelForRowAtIndexPath:(NSIndexPath *)indexPath
11 {
12 NSUInteger row = [indexPath row];
13 return row;
14 }
15 //获取传递过来的indexPath值
16 - (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath
17 {
18 NSUInteger row = [indexPath row];
19 if (row == 0)
20 return nil;
21 return indexPath;
22 }
23
24 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
25 {
26 NSUInteger row = [indexPath row];
27 NSString *rowValue = [listData objectAtIndex:row];
28 NSString *message = [[NSString alloc] initWithFormat:@"You selected %@",rowValue];
29 UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Row Selected"
30 message:message
31 delegate:nil
32 cancelButtonTitle:@"Yes, I did!"
33 otherButtonTitles:nil];
34 [alert show];
35 [alert release];
36 [message release];
37 [tableView deselectRowAtIndexPath:indexPath animated:YES];
38 }
39
40 //设置行的高度
41 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
42 {
43 return 40;
44 }
随机数的使用
查看源代码打印帮助
1 头文件的引用
2 #import <time.h>
3 #import <mach/mach_time.h>
4 srandom()的使用
5 srandom((unsigned)(mach_absolute_time() & 0xFFFFFFFF));
6 直接使用 random() 来调用随机数
在UIImageView 中旋转图像
查看源代码打印帮助
1 float rotateAngle = M_PI;
2 CGAffineTransform transform =CGAffineTransformMakeRotation(rotateAngle);
3 imageView.transform = transform;
以上代码旋转imageView, 角度为rotateAngle, 方向可以自己测试哦!
在Quartz中如何设置旋转点
查看源代码打印帮助
1 UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"bg.png"]];
2 imageView.layer.anchorPoint = CGPointMake(0.5, 1.0);
这个是把旋转点设置为底部中间。记住是在QuartzCore.framework中才得到支持。
创建.plist文件并存储
-
查看源代码打印帮助
01 NSString *errorDesc; //用来存放错误信息
02 NSMutableDictionary *rootObj = [NSMutableDictionary dictionaryWithCapacity:4]; //NSDictionary, NSData等文件可以直接转化为plist文件
03 NSDictionary *innerDict;
04 NSString *name;
05 Player *player;
06 NSInteger saveIndex;
07 for(int i = 0; i < [playerArray count]; i++) {
08 player = nil;
09 player = [playerArray objectAtIndex:i];
10 if(player == nil)
11 break;
12 name = player.playerName;// This “Player1″ denotes the player name could also be the computer name
13 innerDict = [self getAllNodeInfoToDictionary:player];
14 [rootObj setObject:innerDict forKey:name]; // This “Player1″ denotes the person who start this game
15 }
16 player = nil;
17 NSData *plistData = [NSPropertyListSerialization dataFromPropertyList:(id)rootObj format:NSPropertyListXMLFormat_v1_0 errorDescription:&errorDesc];
最后2行可以忽略,只是给rootObj添加一点内容。这个plistData为创建好的plist文件,用其writeToFile方法就可以写成文件。下面是代码:
查看源代码打印帮助
01 /*得到移动设备上的文件存放位置*/
02 NSString *documentsPath = [self getDocumentsDirectory];
03 NSString *savePath = [documentsPath stringByAppendingPathComponent:@"save.plist"];
04
05 /*存文件*/
06 if (plistData) {
07 [plistData writeToFile:savePath atomically:YES];
08 }
09 else {
10 NSLog(errorDesc);
11 [errorDesc release];
12 }
13
14 - (NSString *)getDocumentsDirectory {
15 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
16 return [paths objectAtIndex:0];
17 }
读取plist文件并转化为NSDictionary
查看源代码打印帮助
1 NSString *documentsPath = [self getDocumentsDirectory];
2 NSString *fullPath = [documentsPath stringByAppendingPathComponent:@"save.plist"];
3 NSMutableDictionary* plistDict = [[NSMutableDictionary alloc] initWithContentsOfFile:fullPath];
读取一般性文档文件
查看源代码打印帮助
01 NSString *tmp;
02 NSArray *lines; /*将文件转化为一行一行的*/
03 lines = [[NSString stringWithContentsOfFile:@"testFileReadLines.txt"]
04 componentsSeparatedByString:@”\n”];
05 NSEnumerator *nse = [lines objectEnumerator];
06 // 读取<>里的内容
07 while(tmp = [nse nextObject]) {
08 NSString *stringBetweenBrackets = nil;
09 NSScanner *scanner = [NSScanner scannerWithString:tmp];
10 [scanner scanUpToString:@"<" intoString:nil];
11 [scanner scanString:@"<" intoString:nil];
12 [scanner scanUpToString:@">" intoString:&stringBetweenBrackets];
13 NSLog([stringBetweenBrackets description]);
14 }
对于读写文件,还有补充,暂时到此。随机数和文件读写在游戏开发中经常用到。所以把部分内容放在这,以便和大家分享,也当记录,便于查找。
隐藏NavigationBar
查看源代码打印帮助
1 [self.navigationController setNavigationBarHidden:YES animated:YES];
在想隐藏的ViewController中使用就可以了。
如果无法保证子类行为的一致性,那么就用委托
If the subClass cann’t keep with superClass,use delegate rather than inheritance.
屏幕上看到的,都是UIVew
Everything you see on Screen is UIView.
如果对性能要求高,慎用Interface Build
if application’s performance is important,be discreet for the interface build.
copy是创建,retain是引用
the copy operation is create a new one,but the retain operation is just a reference.
alloc需要release,convenient不需要release
alloc method need corresponding release method,but convenient method not.
加载到NSArray/NSMutableArray里的对象,不需要负责release
The objects added to NSArray/NSMutableArray need not to be released.
IBOutlet,IBAction为你开启了访问Interface Build中对象的大门
IBOutlet and IBAction open the door to access the objects in Interface build.
UIApplicationDelegate负责应用程序的生命周期,而UIViewController负责View的生命周期
UIApplicationDelegate is responsible for the application life cycle,but UIViewController for the UIView.
为了程序的健壮性,请尽量实现Delegate的生命周期函数
if you want to develop a robust application,implement the life cycle methods as more as possbile.
you触摸的不是UIEvent,而是NSSet的UIView
what you touch on screen is not UIEvent but UIView
UITextField不响应键盘:
查看源代码打印帮助
1 方法1: TextField的的Touch Cancel响应中,添加[textFied resignFirstResponder];
2
3 方法: - (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{
4
5 [textFied resignFirstResponder]; }
更改响应键盘return按钮:
查看源代码打印帮助
01 TextField.returnKeyType=UIReturnKeyDone;
02 select:
03 UIReturnKeyDefault,
04 UIReturnKeyGo,
05 UIReturnKeyGoogle,
06 UIReturnKeyJoin,
07 UIReturnKeyNext,
08 UIReturnKeyRoute,
09 UIReturnKeySearch,
10 UIReturnKeySend,
11 UIReturnKeyYahoo,
12 UIReturnKeyDone,
13 UIReturnKeyEmergencyCall,
尺寸问题:
查看源代码打印帮助
1 iPhone应用程序图标大小:57*57;
2 iPhone全屏UIView大小:320*460 添加UITabBar后大小:320*411
3 UITabelViewCell默认大小: 320*44
绘制控件方法
查看源代码打印帮助
01 //--alloc
02 -(UITextField *)GetDefaultTextField:(CGRect)frame{
03
04 UITextField *textField=[[UITextField alloc] initWithFrame:frame];
05 textField.borderStyle=UITextBorderStyleRoundedRect;
06 textField.font=[UIFont fontWithName:@"Arial" size:12.0];
07 textField.textAlignment=UITextAlignmentCenter;
08 textField.contentVerticalAlignment=UIControlContentVerticalAlignmentCenter;
09 textField.keyboardType=UIKeyboardTypeNumbersAndPunctuation;
10 textField.returnKeyType=UIReturnKeyDone;
11 textField.delegate=self;
12 return textField;
13
14 }
15 //--alloc
16 -(UILabel *)GetDefaultLabel:(CGRect)frame{
17
18 UILabel *label = [[UILabel alloc] initWithFrame: frame];
19 label.textAlignment=UITextAlignmentCenter;
20 label.textColor=[UIColor blackColor];
21 label.backgroundColor=[UIColor clearColor];
22 label.font=[UIFont boldSystemFontOfSize:12.0];
23 return label;
24 }
25 //--alloc
26 -(UIButton *)GetDefaultButton:(CGRect)frame{
27
28 UIButton *button=[[UIButton alloc] initWithFrame:frame];
29 [button setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];
30 [button setTitleColor:[UIColor blackColor] forState:UIControlStateHighlighted];
31 [button setContentHorizontalAlignment:UIControlContentHorizontalAlignmentLeft];
32 [button.titleLabel setFont:[UIFont boldSystemFontOfSize:14.0]];
33 [button.titleLabel setLineBreakMode:UILineBreakModeCharacterWrap];
34 [button addTarget:self action:@selector(btnTradeTouchUpInside:) forControlEvents:UIControlEventTouchUpInside];
35 [button setContentHorizontalAlignment:UIControlContentHorizontalAlignmentCenter];
36
37 [button setBackgroundImage:[UIImage imageNamed:@"png1.png"] forState:UIControlStateNormal];
38 [button setBackgroundColor:[UIColor lightGrayColor]];
39 button.tag=kButtonTag;
40
41 return button;}
多使用宏定义常量。tag,frame大小,一些判断标志位。
查看源代码打印帮助
1 #define kIndexValueTag 1
苹果屏幕截图快捷键
一般在Mac上用Command-Shif-3/4来截图。注:Command=苹果键 其实还有几个辅助键,来起到不同的截图功能……
查看源代码打印帮助01 1)Command-Shift-3(适用于OS9,10.1X和10.2)
02 将整个屏幕拍下并保存到桌面。
03 2)Command-Shift-4(适用于OS9,10.1X和10.2)
04 将屏幕的一部分拍下并保存到桌面。当按下着几个键后,光标会变为一个十字,可以拖拉来选取拍报区域。
05 3)Command-Shift-Control-3(适用于OS9和10.2)
06 将整个屏幕拍下并保存到剪贴板,可以Command+V直接粘贴到如Photoshop等软件中编辑。
07 4)Command-Shift-Control-4(适用于OS9和10.2)
08 将屏幕的一部分拍下并保存到剪贴板。
09 5)Command-Shift-4再按空格键(适用于10.2)
10 光标会变成一个照相机,点击可拍下当前窗口或菜单或Dock以及图标等,只要将照相机移动到不用区域(有效区域会显示为浅蓝色)点击。
11 6)Command-Shift-Control-4再按空格键(适用于10.2)
12 将选取的窗口或其他区域的快照保存到剪贴板。
13 7)Command-Shift-Capslock-4(适用于OS9)
14 将当前的窗口拍下并保存到桌面。
15Command-Shift-Capslock-Control-4(适用于OS9)
16 将当前的窗口拍下并保存到剪贴板。
相关推荐
20210319-华金证券-农林牧渔行业:反刍动物饲料,有待开发的一片蓝海.pdf
最后一片叶子PPT,最后一片叶子
一片云5.6
在本教程中,我们将学习如何使用Flash软件绘制一片树叶。Flash是一款强大的矢量图形编辑工具,它可以用于创建动画、交互式内容以及各种图形元素。在这个过程中,我们将掌握以下几个关键知识点: 1. **新建图形元件*...
《一片叶子落下来》读后感.pdf
1--[还我们一片蓝天].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码1--[还我们一片蓝天].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码1--[还我们一片蓝天].zip源码scratch2.0 3.0编程项目...
如果我是一片雪花PPT.pptx
这个设计巧妙地结合了这些经典芯片的功能,实现了从方波到低通滤波后的模拟信号的转换。 首先,ne555定时器是一款非常灵活的集成电路,常用于振荡器、定时器和脉冲发生器等应用。它能够产生稳定的方波信号,其频率...
故事的核心事件是“我”和哥哥在收到苹果后,虽然极其渴望,但都没有舍得咬一口,而是计划与父母分享。这种孝顺和亲情的体现,是文章的重点。当妈妈提议将苹果留给太婆时,我们毫不犹豫地同意并将苹果交给她。然而,...
链接脚本,常以`.lds`为扩展名,是链接过程中不可或缺的一部分,用于指导链接器如何处理输入文件的各个段(section),并确定它们在最终输出文件中的布局和位置。链接脚本不仅可以控制section的放置,还能进行更复杂...
在民间舞蹈《一片绿叶》中,扇子的巧妙运用是一项重要的艺术表现手法,它不仅增强了舞蹈的视觉效果,还承载了丰富的文化内涵。本文将深入探讨扇子在该舞蹈中的角色、技巧以及其背后的文化意义。 首先,扇子作为道具...
女孩也能撑起一片天-读《女婴降生后》后感作文.doc
《跑出一片天》观后总结与心得.doc
用于解决win10系统安全中心一片空白。
使用后处理体积来对场景的光照进行微调,以达到理想的效果 。 通过上述解决方案,开发者可以有效地解决UE5中渲染输出报错导致图片一片黑的问题。重要的是要仔细检查和调整光照、纹理、渲染设置等,以确保高质量的...
一片式球阀-q11f一片式球阀.doc
Uchome二次开发是一项技术性强且充满挑战的任务,对于熟悉社区网站建设和个性化需求定制的开发者来说,这是一片广阔的创新领域。本指南将结合"uchome二次开发必备资料整合"中的内容,详细解析二次开发流程、经典样例...
综上所述,这篇“那儿,曾经是一片绿洲”作文以其鲜明的主题和深刻的情感,引导读者关注环保问题,思考人与自然的关系,以及我们如何以更负责任的方式对待地球。它不仅是一篇富有想象力的作文,更是对生态保护的一次...
就像火车司机向风景致敬一样,我们的软件和应用也应该以人性化的方式回应用户的需求,让使用过程变得更有温度,更具美感。这是一种“敬礼”,是对用户情感世界的尊重和理解。 同时,文章也提醒我们,即使在繁忙的...
农林牧渔:反刍动物饲料:有待开发的一片蓝海(2021)(47页).pdf