修改navigation bar的button样式:UIButton *BackBtn = [[UIButton alloc] initWithFrame:CGRectMake(0.0, 100.0, 62.0, 29.0)];[BackBtn setImage:[UIImage imageNamed:@"BackBtn.png"] forState:UIControlStateNormal];[BackBtn addTarget:self action:@selector(BackAction:) forControlEvents:UIControlEventTouchUpInside];UIBarButtonItem *BackBarBtn = [[UIBarButtonItem alloc] initWithCustomView:BackBtn];NavBar.topItem.leftBarButtonItem = BackBarBtn;[BackBtn release];[BackBarBtn release];添加TTButton:TTButton *_tButton = [TTButton buttonWithStyle:@"toolbarBackButton:" title:@"主页"];[_tButton addTarget:self action:@selector(clickback) forControlEvents:UIControlEventTouchUpInside];_tButton.frame = CGRectMake(0, 0, 55, 35);UIBarButtonItem *_barItem = [ [ UIBarButtonItem alloc] initWithCustomView:_tButton];self.navigationItem.leftBarButtonItem = _barItem;0Filed under:iPhone by adminiphone开发常用代码一月 30, 2011- (NSString *)URLEncodedString:(NSString *)string{NSString *result = (NSString *)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,(CFStringRef)string,NULL,CFSTR(“!*’();:@&=+$,/?%#[]“),kCFStringEncodingUTF8);[result autorelease];return result;}//生成nonce- (NSString *)generateNonce{CFUUIDRef theUUID = CFUUIDCreate(NULL);CFStringRef string = CFUUIDCreateString(NULL, theUUID);NSMakeCollectable(theUUID);return [(NSString *)string stringByReplacingOccurrencesOfString:@"-" withString:@""];//return (NSString *)string;}//生成Timestamp- (NSString *)generateTimestamp{return [[NSString stringWithFormat:@"%d", time(NULL)] retain];}iPhone键盘改变颜色只有这2种数字键盘才有效果:UIKeyboardTypeNumberPad,UIKeyboardTypePhonePadkeyboardAppearance = UIKeyboardAppearanceAlert代码如下:NSArray *ws = [[UIApplication sharedApplication] windows]; for(UIView *w in ws){ NSArray *vs = [w subviews]; for(UIView *v in vs){ if([[NSString stringWithUTF8String:object_getClassName(v)] isEqualToString:@”UIKeyboard”]){ v.backgroundColor = [UIColor redColor]; } } }从一个界面push到下一界面左上角返回按钮文字设置在父viewController中如下设置:UIBarButtonItem *backbutton = [[UIBarButtonItem alloc]init];backbutton.title = @”返回列表”;self.navigationItem.backBarButtonItem = backbutton;[backbutton release];navigationbar的back键触发其他事件UIButton *back =[[UIButton alloc] initWithFrame:CGRectMake(200, 25, 63, 30)];[back addTarget:self action:@selector(reloadRowData:) forControlEvents:UIControlEventTouchUpInside];[back setImage:[UIImage imageNamed:@"返回按钮.png"] forState:UIControlStateNormal];UIBarButtonItem *backButtonItem = [[UIBarButtonItem alloc] initWithCustomView:back];self.navigationItem.leftBarButtonItem = loginButtonItem[back release];[backButtonItem release];防止屏幕暗掉锁屏[[UIApplication sharedApplication] setIdleTimerDisabled:YES];将图片从左到右翻页效果显示UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 0, 470)];[imageView setImage:[UIImage imageNamed:@"Bg.jpg"]];self.myImageView =imageView;[self.view addSubview:imageView];[imageView release];CGContextRef context = UIGraphicsGetCurrentContext();[UIView beginAnimations:nil context:context];[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];[UIView setAnimationDuration:0.5];[myImageView setFrame:CGRectMake(0, 0, 310, 470)];[UIView commitAnimations];让覆盖在下面层的视图接受触摸事件searchImage.exclusiveTouch = YES;//第一层searchImage.userInteractionEnabled = NO;myMapView.exclusiveTouch = NO;//第二层myMapView.userInteractionEnabled = YES;View的缩放NSValue *touchPointValue = [[NSValue valueWithCGPoint:CGPointMake(100,100)] retain];[UIView beginAnimations:nil context:touchPointValue];transform = CGAffineTransformMakeScale(0.1,0.21);firstPieceView.transform = transform;[UIView commitAnimations];代码循环添加按钮,其他空间也可以用类似方法添加- (void)viewDidLoad {[super viewDidLoad];for(int i = 0; i < 5; i++){CGRect frame;Btn[i] = [[UIButton buttonWithType:UIButtonTypeCustom] retain];[Btn[i] setImage:[UIImage imageNamed:@"Button.png"] forState:UIControlStateNormal];//设置按钮图片frame.size.width = 55;//设置按钮坐标及大小frame.size.height = 84;frame.origin.x = (i%5)*57+5;frame.origin.y = 10;[Btn[i] setFrame:frame];[Btn[i] setBackgroundColor:[UIColor clearColor]];[Btn[i] addTarget:self action:@selector(btnPressed:) forControlEvents:UIControlEventTouchUpInside];[self.view addSubview:Btn[i]];[Btn[i] release];}}//响应按钮事件-(void)btnPressed:(id)sender{for(int i = 0; i < 5;i++){if([sender isEqual:Btn[i]]){NSLog(@”Btn[%d]:”,i);}}}去除nsstring中的空格,table 以及newline,nextlineNSCharacterSet *whitespace = [NSCharacterSet whitespaceAndNewlineCharacterSet ];NSString *username = [mUsernameField stringValue];username = [username stringByTrimmingCharactersInSet :whitespace];UIImagePickerController用UIImagePickerController 选择、显示图片或视频,主要注意UIImagePickerController 几个属性的设置一:UI 显示样式,显示的格式确定1:sourceType @property(nonatomic) UIImagePickerControllerSourceType sourceTypeenum {UIImagePickerControllerSourceTypePhotoLibrary,UIImagePickerControllerSourceTypeCamera,UIImagePickerControllerSourceTypeSavedPhotosAlbum};typedef NSUInteger UIImagePickerControllerSourceType;sourceType用来 确定用户界面显示的样式:共三种格式(模拟器上的效果图)UIImagePickerControllerSourceTypePhotoLibrary,UIImagePickerControllerSourceTypeCamera,UIImagePickerControllerSourceTypeSavedPhotosAlbum 为了区分是否支持视频格式,一般要用到下面这个函数,以便确定mediaTypes。+ (BOOL)isSourceTypeAvailable:(UIImagePickerControllerSourceType)sourceType2: mediaTypes @property(nonatomic,copy) NSArray *mediaTypesmediaTypes用来确定再picker里显示那些类型的多媒体文件,图片?视频?+ (NSArray *)availableMediaTypesForSourceType:(UIImagePickerControllerSourceType)sourceType二:选取动作处理UIImagePickerControllerDelegate 通过代理来完成用户在选中图片,或者choose视频时的处理方式:共有三个可选的代理方法– imagePickerController:didFinishPickingMediaWithInfo:– imagePickerControllerDidCancel:– imagePickerController:didFinishPickingImage:editingInfo: Deprecated in iPhone OS 3.0- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)infoinfo中包括选取的照片,视频的主要信息NSString *const UIImagePickerControllerMediaType; 选取的类型 public.image public.movieNSString *const UIImagePickerControllerOriginalImage; 修改前的UIImage object.NSString *const UIImagePickerControllerEditedImage; 修改后的UIImage object.NSString *const UIImagePickerControllerCropRect; 原始图片的尺寸NSValue object containing a CGRect data typeNSString *const UIImagePickerControllerMediaURL; 视频在文件系统中 的 NSURL地址保存视频主要时通过获取其NSURL 然后转换成NSData实例代码如下:- (void) pickImage: (id) sender{UIImagePickerController *ipc = [[UIImagePickerController alloc] init];if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]){ipc.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;ipc.mediaTypes =[UIImagePickerController availableMediaTypesForSourceType:ipc.sourceType];}ipc.delegate = self;ipc.allowsImageEditing = NO;[self presentModalViewController:ipc animated:YES];}- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{NSString *mediaType = [info objectForKey:UIImagePickerControllerMediaType];if ([mediaType isEqualToString:@"public.image"]){//UIImage *selectedImage = [info objectForKey:UIImagePickerControllerOriginalImage];UIImage *image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];NSLog(@”found an image”);[UIImageJPEGRepresentation(image, 1.0f) writeToFile:[self findUniqueSavePath] atomically:YES];SETIMAGE(image);CFShow([[NSFileManager defaultManager] directoryContentsAtPath:[NSHomeDirectory() stringByAppendingString:@"/Documents"]]);}else if ([mediaType isEqualToString:@"public.movie"]){NSURL *videoURL = [info objectForKey:UIImagePickerControllerMediaURL];NSLog(@”found a video”);NSData *webData = [NSData dataWithContentsOfURL:videoURL];//NSData *video = [[NSString alloc] initWithContentsOfURL:videoURL];[webData writeToFile:[self findUniqueMoviePath] atomically:YES];CFShow([[NSFileManager defaultManager] directoryContentsAtPath:[NSHomeDirectory() stringByAppendingString:@"/Documents"]]);//NSLog(videoURL);}[picker dismissModalViewControllerAnimated:YES];}UITextInputTraits属性autocapitalizationType 设置键盘自动大小写的属性 UITextAutocapitalizationTypeNoneautocorrectionType property 设置是否有自动修改提示 UITextAutocorrectionTypeNoenablesReturnKeyAutomatically Boolean值-设置在用户没有输入是returnKey禁用,默认值NOkeyboardAppearance 设置键盘显示方式 除了默认模式 还有一个UIKeyboardAppearanceAlert模式keyboardType 设置键盘类型 UIKeyboardTypePhonePad 等returnKeyType 设置renturnKey按键上的提示文字 UIReturnKeyGo UIReturnKeyNextsecureTextEntry BOOL值 -- 设置是否是密码保护模式输入如下:设置登录用的 输入框 UITextField用户名输入框:m_TF_username = [[UITextField alloc] initWithFrame:my_frame];m_TF_username.borderStyle = UITextBorderStyleNone;m_TF_username.clearButtonMode = UITextFieldViewModeWhileEditing;m_TF_username.delegate = self;m_TF_username.returnKeyType = UIReturnKeyNext;m_TF_username.autocapitalizationType = UITextAutocapitalizationTypeNone;[m_TF_username becomeFirstResponder];密码输入框:m_TF_password = [[UITextField alloc] initWithFrame:my_frame];m_TF_password.borderStyle = UITextBorderStyleNone;m_TF_password.clearButtonMode = UITextFieldViewModeWhileEditing;m_TF_password.delegate = self;m_TF_password.returnKeyType = UIReturnKeyGo;m_TF_password.secureTextEntry =YES;键盘透明textField.keyboardAppearance = UIKeyboardAppearanceAlert;状态栏的网络活动风火轮是否旋转[UIApplication sharedApplication].networkActivityIndicatorVisible,默认值是NO。截取屏幕图片//创建一个基于位图的图形上下文并指定大小为CGSizeMake(200,400)UIGraphicsBeginImageContext(CGSizeMake(200,400));//renderInContext 呈现接受者及其子范围到指定的上下文[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];//返回一个基于当前图形上下文的图片UIImage *aImage = UIGraphicsGetImageFromCurrentImageContext();//移除栈顶的基于当前位图的图形上下文UIGraphicsEndImageContext();//以png格式返回指定图片的数据imageData = UIImagePNGRepresentation(aImage);更改cell选中的背景UIView *myview = [[UIView alloc] init];myview.frame = CGRectMake(0, 0, 320, 47);myview.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"0006.png"]];cell.selectedBackgroundView = myview;在数字键盘上添加button://定义一个消息中心[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil]; //addObserver:注册一个观察员 name:消息名称- (void)keyboardWillShow:(NSNotification *)note {// create custom buttonUIButton *doneButton = [UIButton buttonWithType:UIButtonTypeCustom];doneButton.frame = CGRectMake(0, 163, 106, 53);[doneButton setImage:[UIImage imageNamed:@"5.png"] forState:UIControlStateNormal];[doneButton addTarget:self action:@selector(addRadixPoint) forControlEvents:UIControlEventTouchUpInside];// locate keyboard viewUIWindow* tempWindow = [[[UIApplication sharedApplication] windows] objectAtIndex:1];//返回应用程序windowUIView* keyboard;for(int i=0; i<[tempWindow.subviews count]; i++) //遍历window上的所有subview{keyboard = [tempWindow.subviews objectAtIndex:i];// keyboard view found; add the custom button to itif([[keyboard description] hasPrefix:@”<UIKeyboard”] == YES)[keyboard addSubview:doneButton];}}正则表达式使用:被用于正则表达式的字串必须是可变长的,不然会出问题将一个空间放在视图之上[scrollView insertSubview:searchButton aboveSubview:scrollView];从本地加载图片NSString *boundle = [[NSBundle mainBundle] resourcePath];[web1 loadHTMLString:[NSString stringWithFormat:@"<img src='http://fei263.blog.163.com/blog/0001.png'/>"] baseURL:[NSURL fileURLWithPath:boundle]];从网页加载图片并让图片在规定长宽中缩小[cell.img loadHTMLString:[NSString stringWithFormat:@"<html><body><img src='http://fei263.blog.163.com/blog/%@' height='90px' width='90px'></body></html>",goodsInfo.GoodsImg] baseURL:nil];将网页加载到webview上通过javascript获取里面的数据,如果只是发送了一个连接请求获取到源码以后可以用正则表达式进行获取数据NSString *javaScript1 = @”document.getElementsByName(‘.u’).item(0).value”;NSString *javaScript2 = @”document.getElementsByName(‘.challenge’).item(0).value”;NSString *strResult1 = [NSString stringWithString:[theWebView stringByEvaluatingJavaScriptFromString:javaScript1]];NSString *strResult2 = [NSString stringWithString:[theWebView stringByEvaluatingJavaScriptFromString:javaScript2]];用NSString怎么把UTF8转换成unicodeutf8Str //NSString *unicodeStr = [NSString stringWithCString:[utf8Str UTF8String] encoding:NSUnicodeStringEncoding];View自己调用自己的方法:[self performSelector:@selector(loginToNext) withObject:nil afterDelay:2];//黄色段为方法名,和延迟几秒执行.显示图像:CGRect myImageRect = CGRectMake(0.0f, 0.0f, 320.0f, 109.0f);UIImageView *myImage = [[UIImageView alloc] initWithFrame:myImageRect];[myImage setImage:[UIImage imageNamed:@"myImage.png"]];myImage.opaque = YES; //opaque是否透明[self.view addSubview:myImage];[myImage release];WebView:CGRect webFrame = CGRectMake(0.0, 0.0, 320.0, 460.0);UIWebView *webView = [[UIWebView alloc] initWithFrame:webFrame];[webView setBackgroundColor:[UIColor whiteColor]];NSString *urlAddress = @”http://www.google.com”;NSURL *url = [NSURL URLWithString:urlAddress];NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];[webView loadRequest:requestObj];[self addSubview:webView];[webView release];显示网络活动状态指示符这是在iPhone左上部的状态栏显示的转动的图标指示有背景发生网络的活动。UIApplication* app = [UIApplication sharedApplication];app.networkActivityIndicatorVisible = YES;动画:一个接一个地显示一系列的图象NSArray *myImages = [NSArray arrayWithObjects: [UIImage imageNamed:@"myImage1.png"], [UIImage imageNamed:@"myImage2.png"], [UIImage imageNamed:@"myImage3.png"], [UIImage imageNamed:@"myImage4.gif"], nil];UIImageView *myAnimatedView = [UIImageView alloc];[myAnimatedView initWithFrame:[self bounds]];myAnimatedView.animationImages = myImages; //animationImages属性返回一个存放动画图片的数组myAnimatedView.animationDuration = 0.25; //浏览整个图片一次所用的时间myAnimatedView.animationRepeatCount = 0; // 0 = loops forever 动画重复次数[myAnimatedView startAnimating];[self addSubview:myAnimatedView];[myAnimatedView release];动画:显示了something在屏幕上移动。注:这种类型的动画是“开始后不处理” -你不能获取任何有关物体在动画中的信息(如当前的位置) 。如果您需要此信息,您会手动使用定时器去调整动画的X和Y坐标这个需要导入QuartzCore.frameworkCABasicAnimation *theAnimation;theAnimation=[CABasicAnimation animationWithKeyPath:@"transform.translation.x"];//Creates and returns an CAPropertyAnimation instance for the specified key path.//parameter:the key path of the property to be animatedtheAnimation.duration=1;theAnimation.repeatCount=2;theAnimation.autoreverses=YES;theAnimation.fromValue=[NSNumber numberWithFloat:0];theAnimation.toValue=[NSNumber numberWithFloat:-60];[view.layer addAnimation:theAnimation forKey:@"animateLayer"];Draggable items//拖动项目Here’s how to create a simple draggable image.//这是如何生成一个简单的拖动图象1. Create a new class that inherits from UIImageView@interface myDraggableImage : UIImageView { }2. In the implementation for this new class, add the 2 methods:- (void) touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event{// Retrieve the touch point 检索接触点CGPoint pt = [[touches anyObject] locationInView:self];startLocation = pt;[[self superview] bringSubviewToFront:self];}- (void) touchesMoved:(NSSet*)touches withEvent:(UIEvent*)event{// Move relative to the original touch point 相对以前的触摸点进行移动CGPoint pt = [[touches anyObject] locationInView:self];CGRect frame = [self frame];frame.origin.x += pt.x – startLocation.x;frame.origin.y += pt.y – startLocation.y;[self setFrame:frame];}3. Now instantiate the new class as you would any other new image and add it to your view//实例这个新的类,放到你需要新的图片放到你的视图上dragger = [[myDraggableImage alloc] initWithFrame:myDragRect];[dragger setImage:[UIImage imageNamed:@"myImage.png"]];[dragger setUserInteractionEnabled:YES];线程:1. Create the new thread:[NSThread detachNewThreadSelector:@selector(myMethod) toTarget:self withObject:nil];2. Create the method that is called by the new thread:- (void)myMethod{NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];*** code that should be run in the new thread goes here ***[pool release];}//What if you need to do something to the main thread from inside your new thread (for example, show a loading //symbol)? Use performSelectorOnMainThread.[self performSelectorOnMainThread:@selector(myMethod) withObject:nil waitUntilDone:false];Plist filesApplication-specific plist files can be stored in the Resources folder of the app bundle. When the app first launches, it should check if there is an existing plist in the user’s Documents folder, and if not it should copy the plist from the app bundle.// Look in Documents for an existing plist fileNSArray *paths = NSSearchPathForDirectoriesInDomains( NSDocumentDirectory, NSUserDomainMask, YES);NSString *documentsDirectory = [paths objectAtIndex:0];myPlistPath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat: @"%@.plist", plistName] ];[myPlistPath retain];// If it’s not there, copy it from the bundleNSFileManager *fileManger = [NSFileManager defaultManager];if ( ![fileManger fileExistsAtPath:myPlistPath] ){NSString *pathToSettingsInBundle = [[NSBundle mainBundle] pathForResource:plistName ofType:@”plist”];}//Now read the plist file from DocumentsNSArray *paths = NSSearchPathForDirectoriesInDomains( NSDocumentDirectory, NSUserDomainMask, YES);NSString *documentsDirectoryPath = [paths objectAtIndex:0];NSString *path = [documentsDirectoryPath stringByAppendingPathComponent:@"myApp.plist"];NSMutableDictionary *plist = [NSDictionary dictionaryWithContentsOfFile: path];//Now read and set key/valuesmyKey = (int)[[plist valueForKey:@"myKey"] intValue];myKey2 = (bool)[[plist valueForKey:@"myKey2"] boolValue];[plist setValue:myKey forKey:@"myKey"];[plist writeToFile:path atomically:YES];AlertsShow a simple alert with OK button.UIAlertView *alert = [[UIAlertView alloc] initWithTitle:nil message:@”An Alert!” delegate:self cancelButtonTitle:@”OK” otherButtonTitles:nil];[alert show];[alert release];Info buttonIncrease the touchable area on the Info button, so it’s easier to press.CGRect newInfoButtonRect = CGRectMake(infoButton.frame.origin.x-25, infoButton.frame.origin.y-25, infoButton.frame.size.width+50, infoButton.frame.size.height+50);[infoButton setFrame:newInfoButtonRect];Detecting SubviewsYou can loop through subviews of an existing view. This works especially well if you use the “tag” property on your views.for (UIImageView *anImage in [self.view subviews]){if (anImage.tag == 1){ // do something }}
详细解决方案
iPhone惯用code
热度:65 发布时间:2016-04-25 06:33:48.0
相关解决方案
- weservice调用Server returned HTTP response code: 500 for URL解决方法
- iphone 模拟器,该如何处理
- 一个关于QR code(二维码) 的有关问题
- \nbproject\build-impl.xml:332: Preverification failed with error code 1. 异常
- JEECG(J2EE Code Generation) 基于代码生成器J2EE智能开发框架 公布新版本通知
- it.sauronsoftware.ftp4j.FTPException [code=550,message= /DLL:Permission denied,该怎么处理
- 急求:PL/SQL Developer 的Product code、Serial number以及Password,该怎么处理
- 请教两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对
- Server returned HTTP response code: 403 for URL如何解决
- code lover解决办法
- MyEclipse错误:Java was started but returned exit code = 1
- EF5 code first 实体继承的有关问题
- 求ef code first课程
- c#c++,android,ios(iphone),php,java视屏课程 散分
- FCIAddFile(failed: code 一 [Failure opening file to be stored in cabinet]
- QR-Code[二维码生成],有这样的控件吗?解决办法
- FCIAddFile(failed: code 1 [Failure opening file to be stored in cabinet],该怎么解决
- VS设置这个是作什么用的? C++ -> code Generation -> Buffer Security check,该如何解决
- 请问个EF code first DbContext有关问题
- 顶者有分!Code First 共用数据库的有关问题
- csnd如何发图片!发代码如何让代码变色![code=C#][/code]如何用
- Code-First POCO有关问题
- CKFinder 加入验证之后,无法上传文件,出现HTTP Error: status code 302. I/O Error: Error #2038. 异常
- Event code: 3005 是咋回事呢
- 有哪位高手用过JPlayer ,进来一下,IPHONE 等设备播放有关问题
- EF Code First设置int主键初始值的有关问题
- asp.net entity framework code first用途?该如何解决
- asp.net entity framework code first 更新数据库?解决思路
- EF Code First,entity framework.数据表发生改变后如何避免
- 为什么总是出现“MSDTC 事务的导入失败: Result Code = 0x8004d00e。”错误