Iphone开发代码片段3

1.给UITableViewController添加ToolBar。

 self.navigationController.toolbarHidden = NO; //默认是隐藏的。

//添加MessageToolBar ,messageToolBar是IBOutlet的一个ToolBar。

 self.toolbarItems =  [[[NSMutableArray alloc] initWithArray:self.messageToolBar.items] autorelease];

 self.navigationController.toolbar.barStyle = self.messageToolBar.barStyle; 

2.后台运行一个方法,如果该方法需要修改UI,为了防止出错,应在主线程里修改UI。

[self performSelectorInBackground:@selector(updateInfo)];

在UpdateInfo里如果要修改UI ,

[self performSelectorOnMainThread:@selector(updateUIMethod) withObject:nil waitUntilDone:NO];

同时注意,后台程序的方法应该放在NSAutoRelease pool里的,如下所示:

NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
xxxx
[pool release];

3.在A类里动态的设定B类或者C类的方法。

[self.actionTarget performSelector:self.actionMethod withObject:parameter];

actionTarget   -> id类型的属性。设置B 类或者C类。

actionMethod -> Sel类型的属性。设置具体的方法名

parameter     -> 参数

4.设置Navigation的提示信息和进度条设置

   self.navigationItem.prompt : 提示信息
   self.navigationItem.titleView :存放ProgressBar等其它提示信息的View

   在进度条显示完了后,需要清空显示进度信息:

   self.navigationItem.prompt = nil;
   self.navigationItem.titleView = nil;

5.从资源文件xib里加载View的方法

 NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"MyView"
                                                         owner:self
                                                       options:nil];
MyView *view = [nib objectAtIndex:0];

6. UIAlterView 修改默认的Frame高度

在其委托里实现这个方法

-(void)willPresentAlertView:(UIAlertView*)alertView 

{

    alertView.frame =CGRectMake(5.f,1.f,100.f,200.f);

}

参考:http://stackoverflow.com/questions/2763713/change-width-of-uialertview-in-ipad

 

 7.获取iphone屏幕大小

CGRect screenBounds = [ [ UIScreen mainScreen ] bounds ];
CGRect screenRect= [ [ UIScreen mainScreen ] applicationframe ]; 

8. 修改TableView的样式,让UITableView显示Windows的背景图片。

    self.tableView.backgroundColor = [UIColor clearColor];
    self.tableView.opaque = NO;
    self.tableView.backgroundView = nil;

   如果要修改UITableCell的事情backgroundColor需要再 tableView:willDisplayCell:forRowAtIndexPath:里修改。

9.通过图片获取颜色。 

[UIColor colorWithPatternImage:[UIImage imageNamed:@"imageName"]];

修改分割线颜色

 self.tableView.separatorColor = [UIColor blackColor]; 

显示文本的地方设置透明色 

 cell.textLabel.opaque = NO;

 这样整个cell就有立体感。 

10.设置UITableView 的checkmark显示样式

修改cell的 accessoryView 

 cell.accessoryView = UIImageView

11. 修改TableView距离导航缆的高度。 

 - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section

{
    return 10.0;
}
 
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
    return [[[UIView alloc] initWithFrame:CGRectZero] autorelease];;
}

12. 自定义TableViewCell的背景颜色和选择后的颜色。

 方法一:将TableViewCell的backgroundView和SelectBackGroundView修改成指定的View就可以了。

 方法二: 在Interface Builder里设置cell的image和SelectImage属性,但是要记得UItableView修改seperator的属性为None

13 颜色定义。

  美工一般定义好颜色,然后让程序员去填充颜色,美工一般给的是RGB颜色,那么RGB颜色如果换成UIColor

[UIColor colorWithRed:31.0/255 green:204.0/255 blue:39.0/255 alpha:1.0];

Red,Green,Blue只接受0-1的参数,换算方法是除以255。 

14. Xcode 4设置  NSZombieEnabled

 if you click on the scheme drop down bar -> edit scheme -> arguments tab and then add NSZombieEnabled in the Environment Variables column and YES in the value column

15.自动生成多语言化的StringTable

   如果在代码里全部是通过 NSLocalizedString(@"中文", nil)来对应多语言,最后要整理一个list,手动一个一个粘贴太麻烦。

  自动化生成方法:在命令行目录下进入项目根目录:执行 genstrings -a $(find . -name "*.m"),就会自动生成一个文件对应。

  参考网址 http://steelwheels.sourceforge.jp/Documents/genstring.html

http://iphone.longearth.net/2009/05/25/%E3%80%90iphone%E3%80%91localizablestrings%E3%82%92%E8%87%AA%E5%8B%95%E3%81%A7%E4%BD%9C%E3%82%8B-genstrings/ 

16.自定义bond字体 

[UIFont fontWithName:@"Helvetica-Bold" size:16.0] 

17  无边框透明UITableViewCell

self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;   

self.tableView.separatorColor = [UIColor clearColor];              

self.tableView.backgroundColor = [UIColor clearColor];   

self.tableView.opaque = NO;   

self.tableView.backgroundView = nil;

--Cell修改--

self.backgroundView = [[[UIView alloc] init] autorelease];       

self.backgroundView.backgroundColor = [UIColor clearColor];       

self.selectedBackgroundView = [[[UIView alloc] init] autorelease];       

self.selectedBackgroundView.backgroundColor = [UIColor clearColor];

18. 隐藏Tabbar

SampleViewController*obj =[[SampleViewController alloc] init];

[obj setHidesBottomBarWhenPushed:YES];

[self.navigationController pushViewController:obj animated:YES];

[obj release];
19.从UIView获取UImage
#import QuartzCore/QuartzCore.h

- (UIImage *)getImageFromView:(UIView *)orgView  

{ UIGraphicsBeginImageContext(orgView.bounds.size);  

[orgView.layer renderInContext:UIGraphicsGetCurrentContext()];  

UIImage *image = UIGraphicsGetImageFromCurrentImageContext();  

UIGraphicsEndImageContext();  

return image;  

20. 添加手式识别后,会屏蔽掉touchend方法

 

21.获取手机号码,和IMEI  

 

获取本地iphone手机号码

[[NSUserDefaults standardUserDefaults] valueForKey:@"SBFormattedPhoneNumber"];  

获取手机的imei

#import "Message/NetworkController.h" 

NetworkController *ntc=[[NetworkController sharedInstance] autorelease];  

NSString *imeistring = [ntc IMEI];  

imeistring就是获取的imei。 IMEI(International Mobile Equipment Identity)是国际移动设备身份码的缩写,国际移动装备辨识码,是由15位数字组成的"电子串号",它与每台手机一一对应,而且该码是全世界唯一的。

22 NLog的格式,经常忘记,做个笔记

%@ 对象
%d, %i 整数
%u   无符整形
%f 浮点/双字
%x, %X 二进制整数
%o 八进制整数
%zu size_t
%p 指针
%e   浮点/双字 (科学计算)
%g   浮点/双字
%s C 字符串
%.*s Pascal字符串
%c 字符
%C unichar
%lld 64位长整数(long long)
%llu   无符64位长整数
%Lf 64位双字
 

23.更改UISearchBar最下面黑色的边框

 #define SEARCHBAR_BORDER_TAG 1337

- (void) viewDidLoad{
    // Set a custom border on the bottom of the search bar, so it's not so harsh
    UISearchBar *searchBar = self.searchDisplayController.searchBar;
    UIView *bottomBorder = [[UIView alloc] initWithFrame:CGRectMake(0,searchBar.frame.size.height-1,searchBar.frame.size.width, 1)];
    [bottomBorder setBackgroundColor:[UIColor colorWithWhite:200.0f/255.f alpha:1.0f]];
    [bottomBorder setOpaque:YES];
    [bottomBorder setTag:SEARCHBAR_BORDER_TAG];
    [searchBar addSubview:bottomBorder];
    [bottomBorder release];
}

 

24.设置键盘的默认形式。

   比如UITextField 设置为默认数字,和只允许数组数字

   //默认数字 

   textField.keyboardType = UIKeyboardTypeNumbersAndPunctuation
   //只允许输入数字   

   textField.keyboardType = UIKeyboardTypeNumberPad

 

25.UIButton设置文字左对齐

 - emailBtn.contentHorizontalAlignment = UIontrolContentHorizontalAlignmentLeft;
 - emailBtn.contentEdgeInsets = UIEdgeInsetsMake(0, 10, 0, 0);
 - CGRect buttonRect = emailBtn.bounds;  
   UILabel *myLabel = [[UILabel alloc] initWithFrame: buttonRect];
   myLabel = UITextAlignmentLeft;
   [emailBtn addSubview:myLabel];

   [myLabel release];  

26. retain异常的时候重载这个方法设置断点查看和分析

- (id) retain

{
    // Break here to see who is retaining me.
    return [super retain];
}

 

27.去掉白色半圆

Plist添加 

 Icon already includes gloss effects 为YES

 

UIPrerenderedIcon 设置不起作用(Xcode4 .0.2)
28.tableView reloadRowsAtIndexPaths 如果不在可见区域,将不会重新加载。
 

29. 设置应用程序的statusbaryanse

再plist里设置Status bar style  Opaque black style

 

30. 设置控件的copy paste的本地化

   - 设置Localization native development region   =》 china

   - 将项目的en.lproj 改成zh_CN.lproj

 31. 允许应用程序通过itunes上传文件(ios3.2以上)

 在info.plist里设置 UIFileSharingEnabled  => YES

 32. 获取UICOLOR的rgb值

const CGFloat* components = CGColorGetComponents(SelectedColor.CGColor);
NSLog(@"Red: %f", components[0]);
NSLog(@"Green: %f", components[1]); 
NSLog(@"Blue: %f", components[2]);

NSLog(@"Alpha: %f", CGColorGetAlpha(SelectedColor.CGColor)); 

 

33.获取2个时间之间的天,小时,分钟

 +(NSString *)TimeRemainingUntilDate:(NSDate *)date {

 
    NSTimeInterval interval = [date timeIntervalSinceNow];
    NSString * timeRemaining = nil;
 
    if (interval > 0) {
 
        div_t d = div(interval, 86400);
        int day = d.quot;
        div_t h = div(d.rem, 3600);
        int hour = h.quot;
        div_t m = div(h.rem, 60);
        int min = m.quot;
 
        NSString * nbday = nil;
        if(day > 1)
            nbday = @"days";
        else if(day == 1)
            nbday = @"day";
        else
            nbday = @"";
        NSString * nbhour = nil;
        if(hour > 1)
            nbhour = @"hours";
        else if (hour == 1)
            nbhour = @"hour";
        else
            nbhour = @"";
        NSString * nbmin = nil;
        if(min > 1)
            nbmin = @"mins";
        else
            nbmin = @"min";
 
        timeRemaining = [NSString stringWithFormat:@"%@%@ %@%@ %@%@",day ? [NSNumber numberWithInt:day] : @"",nbday,hour ? [NSNumber numberWithInt:hour] : @"",nbhour,min ? [NSNumber numberWithInt:min] : @"00",nbmin];
    }
    else
        timeRemaining = @"Over";
 
    return timeRemaining;
}

 

34. Icon specified in the Info.plist not found under the top level app wrapper 

     记住Icon 首字母是大写的,不是icon.png , 是Icon.png 

 

35. 

[iphone]Code Sign error: Provisioning profile XXXX can't be found

http://www.cnblogs.com/baryon/archive/2010/05/06/1728968.html 

http://www.douban.com/note/131009422/ 

 

   1.关闭你的项目,找到项目文件XXXX.xcodeproj,在文件上点击右键,选择“显示包内容”(Show Package Contents)。会新打开一个Finder。注:其实XXXX.xcodeproj就是一个文件夹,这里新打开的一个Finder里面的三个文件就是该XXXX.xcodeproj文件夹里面的文件。
2.在新打开的Finder中找到project.pbxproj,并且打开。在这之中找到你之前的证书的编码信息。我之前报的错误信息是
 
Code Sign error: Provisioning profile '37D44E7F-0339-4277-9A82-C146A944CD46',所以我用查找的方式找到了所有包括37D44E7F-0339-4277-9A82-C146A944CD46的行,并且删除。
 
 3.保存,重新启动你的项目,再编译。就OK了。

 

 36.获取手机唯一ID

UIDevice *device = [UIDevice currentDevice];//创建设备对象
NSString *deviceUID = [[NSString alloc] initWithString:[device uniqueIdentifier]];

NSLog(@"%@",deviceUID); // 输出设备id 

 

37 .动态调用一个类的方法

 View Code

 

 

 38.改变NavigationViewController默认动画,让其旋转

navigationController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 

 

39 .显示和隐藏StatsBar

  [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone]; 

  启动隐藏StatusBar  info.plist  添加 Status bar is initially hidden  为bool Yes

40 . 点击某个cell的按钮,收藏到tabbar里  

http://stackoverflow.com/questions/5926554/get-uitableviewcell-position-from-visible-area-or-window

41. CoreText用文字填充不规则图形

  CGContextRef context = UIGraphicsGetCurrentContext();

复制代码

    // Flip the coordinate system
    CGContextSetTextMatrix(context, CGAffineTransformIdentity);
    CGContextTranslateCTM(context, 0, self.bounds.size.height);
    CGContextScaleCTM(context, 1.0, -1.0);

    // Create a path to render text in
    CGMutablePathRef path = CGPathCreateMutable();
    CGPathAddRect(path, NULL, self.bounds );
    
    // An attributed string containing the text to render
    NSAttributedString* attString = [[NSAttributedString alloc]
                                      initWithString:...];
    
    // Create a path to wrap around
    CGMutablePathRef clipPath = CGPathCreateMutable();
    CGPathAddEllipseInRect(clipPath, NULL, CGRectMake(200, 200, 300, 300) );

    // A CFDictionary containing the clipping path
    CFStringRef keys[] = { kCTFramePathClippingPathAttributeName };
    CFTypeRef values[] = { clipPath };
    CFDictionaryRef clippingPathDict = CFDictionaryCreate(NULL, 
             (const void **)&keys, (const void **)&values,
              sizeof(keys) / sizeof(keys[0]), 
              &kCFTypeDictionaryKeyCallBacks, 
              &kCFTypeDictionaryValueCallBacks);

    // An array of clipping paths -- you can use more than one if needed!
    NSArray *clippingPaths = [NSArray arrayWithObject:(NSDictionary*)clippingPathDict];
    
    // Create an options dictionary, to pass in to CTFramesetter
    NSDictionary *optionsDict = [NSDictionary dictionaryWithObject:clippingPaths forKey:(NSString*)kCTFrameClippingPathsAttributeName];

    // Finally create the framesetter and render text
    CTFramesetterRef framesetter = CTFramesetterCreateWithAttributedString((CFAttributedStringRef)attString); //3
    CTFrameRef frame = CTFramesetterCreateFrame(framesetter,
                             CFRangeMake(0, [attString length]), path, optionsDict);
    
    CTFrameDraw(frame, context);
    
    // Clean up
    CFRelease(frame);
    CFRelease(path);

    CFRelease(framesetter); 

复制代码

 http://amyworrall.com/post/11098565269/text-wrap-with-core-text

42 . Animation开始和结束callback

     UIView 

      - (void)animateStuff {

复制代码
    [UIView beginAnimations:@"animationName" context:nil];
    [UIView setAnimationDelegate:self];
    [self.view doWhatever];
    [UIView commitAnimations];
}

- (void)animationDidStop:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context {
    if ([finished boolValue]) {
        NSLog(@"Animation Done!");
    }
复制代码

 

  CoreAnimation

   CABasicAnimation *anim = [CABasicAnimation animationWithKeyPath:@"position"];

anim.delegate = self;
     
-(void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag
 {

43 .UITableView无法接受Touchbegin问题

   在UITableViewCell里去实现Touchebegin. 

44. ImagePickerView不显示Perview,同时显示自己的coverView一定要设置属性showsCameraControls=NO;

   picker.allowsEditing = NO;

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)img editingInfo:(NSDictionary *)editInfo 
{
//do whatever

[self dismissModalViewControllerAnimated:YES];
}

 45.让一个View遮挡另外一个view,但是不接受任何消息,就在该view重载这个方法

-(BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event

{

    returnNO;

}

 

46. 获取UItableView cell 里的控件的绝对位置

CGPoint point =[self.view convertPoint:self.view.frame.origin toView:nil];

http://stackoverflow.com/questions/7035181/obtain-absolute-position-of-a-view-inside-a-uitableviewcell

 

47. 隐藏navigation 的titile bar

 [UIViewbeginAnimations:nilcontext:nil];

  [self.navigationController.navigationBarsetAlpha:0.0];

  [UIViewcommitAnimations];

下面的方法也可以

[[selfnavigationControllersetNavigationBarHidden:YESanimated:YES];

 

48. 隐藏status bar

  [[self navigationController] setNavigationBarHidden:YES animated:NO];
    self.wantsFullScreenLayout = YES;
 
  
 
  
 
  
如果您想在应用里添加提示功能,比如让 iPhone 机身震动,可以使用下面这行代码:
AudioServicesPlaySystemSound(kSystemSoundID_Vibrate); 

 

UItableView  UITextField 

  

NSString *text = ((UITextField *)cell.accessoryView).text;

However, you must be careful about setting up cells and accessing their values. If any cell goes offscreen, it will be removed and you will not be able to access the text field. What you want to do when setting up your cell is:

cell.accessoryView = nil; //Make sure any old accessory view isn't there.

if (/*cell needs text field*/) {

    UITextField *textField = [[[UITextField alloc] initWithFrame:frame] autorelease];

    textField.text = savedValue;

    cell.accessoryView = textField;

    [textField addTarget:self action:@selector(textChanged:) forControlEvents:UIControlEventValueChanged];

}



...



- (void) textChanged:(UITextField *)source {

    self.savedValue = source.text;

}
从网上下载图片
id path = @"http://merrimusings.mu.nu/archives/images/groundhog2.jpg";
NSURL *url = [NSURL URLWithString:path];
NSData *data = [NSData dataWithContentsOfURL:url];
UIImage *img = [[UIImage alloc] initWithData:data cache:NO]; 

 

NSURL *myURL = [[NSURL alloc] initWithString:@"http://www.google.com/intl/en_ALL/images/logo.gif"];

UIImage *myImage = [UIImage imageWithData:[NSData dataWithContentsOfURL:myURL]];

CGSize imageSize = myImage.size;

UIImageView *myImageView = [[UIImageView alloc] initWithFrame:CGRectMake(((320-imageSize.width)/2), ((480-imageSize.height)/2), imageSize.width, imageSize.height)];

myImageView.image = myImage;

[self.view addSubview:myImageView];

[myURL release];
[myImageView release];

[myImage release]; 

 

变例控件的subviews,如表格的cell的所有view找倒textfield

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {


[tableView deselectRowAtIndexPath:indexPath animated:YES];

UITableViewCell * cell= [tableView cellForRowAtIndexPath:indexPath];

UITextField *textField =nil;

for(UIView *subview in cell.subviews)

{

if([subview isMemberOfClass:[UITextField class]] )

{

textField = (UITextField *)subview;

[textField becomeFirstResponder];

}

}

//[tableView deselectRowAtIndexPath:indexPath animated:YES];

} 

 

 程序登录和退出时,如果要做自动登录,那么就有必要保存用户的登陆信息,可放在NSUserDefault里,如何使用它,下面有个Sample

Saving

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];

// saving an NSString
[prefs setObject:@"TextToSave" forKey:@"keyToLookupString"];

// saving an NSInteger
[prefs setInteger:42 forKey:@"integerKey"];

// saving a Double
[prefs setDouble:3.1415 forKey:@"doubleKey"];

// saving a Float
[prefs setFloat:1.2345678 forKey:@"floatKey"];

// This is suggested to synch prefs, but is not needed (I didn't put it in my tut)
[prefs synchronize];

Retrieving

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];

// getting an NSString
NSString *myString = [prefs stringForKey:@"
keyToLookupString"];

// getting an NSInteger
NSInteger myInt = [prefs integerForKey:@"
integerKey"];

// getting an Float

float myFloat = [prefs floatForKey:@"floatKey"];

 

如何自动获取tableView每行的高度。

因为TableView的高度计算是先于TableCell的生成。所以必须先计算。参考网址http://www.cimgf.com/2009/09/23/uitableviewcell-dynamic-height/

复制代码
代码
#define  FONT_SIZE 14.0f
#define  CELL_CONTENT_WIDTH 320.0f
#define  CELL_CONTENT_MARGIN 10.0f    

-  (CGFloat)tableView:(UITableView  * )tableView heightForRowAtIndexPath:(NSIndexPath  * )indexPath;
{
  NSString 
* text  =  [items objectAtIndex:[indexPath row]];
 
  CGSize constraint 
=  CGSizeMake(CELL_CONTENT_WIDTH  -  (CELL_CONTENT_MARGIN  *   2 ),  20000.0f );
 
  CGSize size 
=  [text sizeWithFont:[UIFont systemFontOfSize:FONT_SIZE] constrainedToSize:constraint lineBreakMode:UILineBreakModeWordWrap];
 
  CGFloat height 
=  MAX(size.height,  44.0f );
 
  
return  height  +  (CELL_CONTENT_MARGIN  *   2 );
}


-  (UITableViewCell  * )tableView:(UITableView  * )tv cellForRowAtIndexPath:(NSIndexPath  * )indexPath
{
  UITableViewCell 
* cell;
  UILabel 
* label  =  nil;
 
  cell 
=  [tv dequeueReusableCellWithIdentifier: @" Cell " ];
  
if  (cell  ==  nil)
  {
    cell 
=  [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier: @" Cell " ] autorelease];
 
    label 
=  [[UILabel alloc] initWithFrame:CGRectZero];
    [label setLineBreakMode:UILineBreakModeWordWrap];
    [label setMinimumFontSize:FONT_SIZE];
    [label setNumberOfLines:
0 ];
    [label setFont:[UIFont systemFontOfSize:FONT_SIZE]];
    [label setTag:
1 ];
 
    [[label layer] setBorderWidth:
2.0f ];
 
    [[cell contentView] addSubview:label];
 
  }
  NSString 
* text  =  [items objectAtIndex:[indexPath row]];
 
  CGSize constraint 
=  CGSizeMake(CELL_CONTENT_WIDTH  -  (CELL_CONTENT_MARGIN  *   2 ),  20000.0f );
 
  CGSize size 
=  [text sizeWithFont:[UIFont systemFontOfSize:FONT_SIZE] constrainedToSize:constraint lineBreakMode:UILineBreakModeWordWrap];
 
  
if  ( ! label)
    label 
=  (UILabel * )[cell viewWithTag: 1 ];
 
  [label setText:text];
  [label setFrame:CGRectMake(CELL_CONTENT_MARGIN, CELL_CONTENT_MARGIN, CELL_CONTENT_WIDTH 
-  (CELL_CONTENT_MARGIN  *   2 ), MAX(size.height,  44.0f ))];
 
  
return  cell;
}
复制代码


 SNDate reference

http://iphonedevelopertips.com/cocoa/date-formatter-examples.html 

http://developer.apple.com/iphone/library/documentation/Cocoa/Conceptual/DataFormatting/Articles/df100103.html

http://www.cocoachina.com/bbs/simple/?t10151.html 

 http://www.iphonedevsdk.com/forum/iphone-sdk-development/4528-help-nsdateformatter.html 

 EEE MMM d HH:mm:ss z yyyy"


Tue Apr 06 00:00:00 +0800 2010


NSString *createTime=@"Tue Apr 06 00:00:00 +0800 2010 ";

NSDateFormatter *dateFormat = [[NSDateFormatter allocinit];

[dateFormat setDateFormat:@"EEE MMM d HH:mm:ss z yyyy"];

NSDate *createDate = [dateFormat dateFromString: createTime];

 

UIToolBar add button and add space between two UIButtonItem

UIToolbar* toolbar = [[UIToolbar alloc]

  initWithFrame:CGRectMake(00, width, 45)];

[toolbar setBarStyleUIBarStyleDefault];

// create an array for the buttons

NSMutableArray* buttons = [[NSMutableArray allocinitWithCapacity:1];

UIBarButtonItem *backButton = [[UIBarButtonItem allocinitWithTitle:@"返回" style:UIBarButtonItemStyleBordered target:self action:@selector(backPress:)];

UIBarButtonItem *flexItem = [[UIBarButtonItem allocinitWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace

  target:nil

  action:nil];

UIBarButtonItem *doneButton = [[UIBarButtonItem allocinitWithTitle:@"确定" style:UIBarButtonItemStyleBordered target:self action:@selector(donePress:)];

[buttons addObject: backButton];

[buttons addObject: flexItem];

[flexItem release];

[buttons addObject: doneButton];

[backButton release];

[doneButton release];

[toolbar setItems:buttons animated:NO];

    [self.view addSubview:toolbar];

[toolbar release]; 

 推迟某个方法的执行

[self performSelector:@selector(loadDataFromNet) withObject:nil afterDelay:0.1]; 

 

通过Animate的方式移动View

         
        [UIView beginAnimations:nil context:NULL];
        [UIView setAnimationDuration:kAnimationDurationStart];
        [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
        [view setFrame:CGRectMake(0, [UIApplication sharedApplication].statusBarFrame.size.height, view.frame.size.width, view.frame.size.height)];
        [UIView commitAnimations];

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值