常用ios程序代码

 

我的原文在evernote,evernote链接的内容会不断更新

http://www.evernote.com/shard/s20/sh/9c35c399-4f7c-4015-944c-ad055cb547db/ba84af5872b716b59f18944a9a5e41a2

 

Settings 设置问题
1. setting面板的设置只有当用户去了设置面板后才会产生,所以程序要假设用户没有去过的时候设置默认值
2. 拿到[NSUserDefaultsstandardUserDefaults];取值之前要 [userDefault synchronize]
3. 假如从设置面板取回的是bool值,当你用代码  

[userDefault boolForKey:@"mapautozoom"];

做判断的话, 假如得到了NO, 这时你无法判断 1.是用户设置了NO 2.还是用户从来没设置过所以是NO
这时要先用个  
if([userDefault objectForKey:@"mapautozoom"]){
// 进来了说明用户设置过 然后再用  boolForKey
}

url encoding


NSString *urlString = [stringTobeEncoding  stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

 

alertView

    UIAlertView *alertView = [[UIAlertView alloc]

                              initWithTitle:@"Error" message:message delegate:nil

                              cancelButtonTitle:@"OK" otherButtonTitles:nil];

    [alertView show];

    [alertView release];

    [self dismissModalViewControllerAnimated:YES];





为UI添加处理事件方法


        UIButton *rightButton = [UIButton buttonWithType:UIButtonTypeContactAdd];

        [rightButton addTarget:self action:@selector(showDetails:) forControlEvents:UIControlEventTouchUpInside];



检测用户locale  


//这里实际检测出的是region format设定  不是language设定


CFLocaleGetIdentifier(CFLocaleCopyCurrent())      //zh_CN

[[NSLocaleautoupdatingCurrentLocale] localeIdentifier  //zh_CN]



添加国际化


1. 代码中使用字符串的地方 使用  NSLocalizedString(@"keyName",@"comment")

2. genstrings 扫描 .m 文件 ,生成  Localizable.strings
3. 在项目目录里生成en.lproj zh-Hans.lproj文件夹, 把Localizable.strings 放进去
4. 把Localizable.strings添加成项目的资源文件(copy bundle resources),确保打包的时候会被copy进去,  


程序名国际化


en.lproj/InfoPlist.strings 添加

CFBundleName="EnglishName";   

CFBundleDisplayName="EnglishName";



Settings.bundle 国际化


Settings.bundle/en.lproj/Root.strings
"version"="Version";
Root.plist的 title写 version, 显示的就是Version



剪贴板


得到剪贴板
UIPasteboard *pasteboard=[UIPasteboard generalPasteboard];

把一个字符串放置到剪贴板上: //用户此后在输入框 粘贴的就是这个字符串
pasteboard.string = @"Hello World";


从剪贴板获取字符串:
UIPasteboard *pasteboard=[UIPasteboard generalPasteboard];  
NSString *myString=pasteboard.string;



UISegmentedControl


绑定  value changed  事件




long press事件


    UILongPressGestureRecognizer *lpress = [[UILongPressGestureRecognizeralloc] initWithTarget:selfaction:@selector(longPress:)];
    lpress.minimumPressDuration = 0.5;//按0.5秒响应longPress方法
    lpress.allowableMovement = 10.0;
    [mapaddGestureRecognizer:lpress];//m_mapView是MKMapView的实例
    [lpress release];



- (void)longPress:(UIGestureRecognizer*)gestureRecognizer
{


    if (gestureRecognizer.state == UIGestureRecognizerStateEnded){
        // put your logic here which executed when the user release their finger
        return;
    }
    






modal 窗口


MainVC.m
- (IBAction) helpButtonClick:(id)sender{
    HelpVC *help= [[[HelpVCalloc]init] autorelease];
    help.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
    help.delegate = self;
    [selfpresentModalViewController:help animated:YES];
    
    
}


- (void)dismissModal:(HelpVC *)helpVC{
    [selfdismissModalViewControllerAnimated:YES];
}





HelpVC.h


#import <UIKit/UIKit.h>


@classHelpVC;


@protocol HelpVCDelegate


- (void)dismissModal:(HelpVC *)helpVC;


@end




@interface HelpVC : UIViewController {
    
}


@property (nonatomic, assign)  id<HelpVCDelegate> delegate;


- (IBAction) closeClick:(id)sender;


@end



HelpVC.m
- (IBAction) closeClick:(id)sender{
    [delegatedismissModal:self];
}






你可能感兴趣的:(ios,UI)