zoukankan      html  css  js  c++  java
  • ios 中常用的小代码段

    1.判断邮箱格式是否正确的代码:
    // 利用正则表达式验证
    -( BOOL )isValidateEmail:( NSString  *)email
    {
    NSString  *emailRegex =  @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+//.[A-Za-z]{2,4}" ;
    NSPredicate  *emailTest = [ NSPredicate   predicateWithFormat : @"SELF MATCHES%@",emailRegex];
    return  [emailTest  evaluateWithObject :email];
    }
     
    2.图片压缩
    用法: UIImage *yourImage= [self imageWithImageSimple:image scaledToSize:CGSizeMake(210.0, 210.0)];
    // 压缩图片
    - ( UIImage *)imageWithImageSimple:( UIImage *)image scaledToSize:( CGSize )newSize
    {
    // Create a graphics image context
    UIGraphicsBeginImageContext (newSize);
    // Tell the old image to draw in this newcontext, with the desired
    // new size
    [image  drawInRect : CGRectMake ( 0 , 0 ,newSize. width ,newSize. height )];
    // Get the new image from the context
    UIImage * newImage =  UIGraphicsGetImageFromCurrentImageContext ();
    // End the context
    UIGraphicsEndImageContext ();
    // Return the new image.
    return  newImage;
    }
     
    3.亲测可用的图片上传代码
    - ( IBAction )uploadButton:( id )sender {
    UIImage  *image = [ UIImage   imageNamed : @"1.jpg" ]; // 图片名
    NSData  *imageData =  UIImageJPEGRepresentation (image, 0.5 );// 压缩比例
    NSLog ( @" 字节数 :%i" ,[imageData length]);
    // post url
    NSString  *urlString =  @"http://192.168.1.113:8090/text/UploadServlet" ;
    // 服务器地址
    // setting up the request object now
    NSMutableURLRequest  *request = [[ NSMutableURLRequest   alloc ]  init ] ;
    [request  setURL :[ NSURL   URLWithString :urlString]];
    [request  setHTTPMethod : @"POST" ];
    //
    NSString  *boundary = [ NSString   stringWithString : @"---------------------------14737809831466499882746641449" ];
    NSString  *contentType = [ NSString   stringWithFormat : @"multipart/form-data;boundary=%@",boundary];
    [request  addValue :contentType  forHTTPHeaderField :  @"Content-Type" ];
    //
    NSMutableData  *body = [ NSMutableData   data ];
    [body  appendData :[[ NSString   stringWithFormat : @"/r/n--%@/r/n" ,boundary] dataUsingEncoding : NSUTF8StringEncoding ]];
    [body  appendData :[[ NSString   stringWithString : @"Content-Disposition:form-data; name=/"userfile/"; filename=/"2.png/"/r/n" ]  dataUsingEncoding : NSUTF8StringEncoding ]]; // 上传上去的图片名字
    [body  appendData :[[ NSString   stringWithString : @"Content-Type: application/octet-stream/r/n/r/n" ]  dataUsingEncoding : NSUTF8StringEncoding ]];
    [body  appendData :[ NSData   dataWithData :imageData]];
    [body  appendData :[[ NSString   stringWithFormat : @"/r/n--%@--/r/n" ,boundary] dataUsingEncoding : NSUTF8StringEncoding ]];
      [request  setHTTPBody :body];
    // NSLog(@"1-body:%@",body);
    NSLog ( @"2-request:%@" ,request);
    NSData  *returnData = [ NSURLConnection   sendSynchronousRequest :request  returningResponse :nil   error : nil ];
    NSString  *returnString = [[ NSString   alloc ]  initWithData :returnData  encoding :NSUTF8StringEncoding ];
    NSLog ( @"3- 测试输出: %@" ,returnString );
     
    4.给imageView加载图片
    UIImage  *myImage = [ UIImage   imageNamed : @"1.jpg" ];
       [ imageView   setImage :myImage];
       [ self . view   addSubview : imageView ];
     
    5.对图库的操作
    选择相册:
    UIImagePickerControllerSourceTypesourceType=UIImagePickerControllerSourceTypeCamera;
       if (![UIImagePickerControllerisSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
           sourceType=UIImagePickerControllerSourceTypePhotoLibrary;
       }
       UIImagePickerController * picker = [[UIImagePickerControlleralloc]init];
       picker.delegate = self;
       picker.allowsEditing=YES;
       picker.sourceType=sourceType;
       [self presentModalViewController:picker animated:YES];
    选择完毕:
     -(void)imagePickerController:(UIImagePickerController*)pickerdidFinishPickingMediaWithInfo:(NSDictionary *)info
    {
       [picker dismissModalViewControllerAnimated:YES];
       UIImage * image=[info objectForKey:UIImagePickerControllerEditedImage];
       [self performSelector:@selector(selectPic:) withObject:imageafterDelay:0.1];
    }
     -(void)selectPic:(UIImage*)image
    {
       NSLog(@"image%@",image); 
       imageView = [[UIImageView alloc] initWithImage:image];
       imageView.frame = CGRectMake(0, 0, image.size.width, image.size.height);
    [self.viewaddSubview:imageView];
       [self performSelectorInBackground:@selector(detect:) withObject:nil];
    }
    detect 为自己定义的方法,编辑选取照片后要实现的效果
    取消选择:
     -(void)imagePickerControllerDIdCancel:(UIImagePickerController*)picker 
    {
       [picker dismissModalViewControllerAnimated:YES];
    }
     
    6.跳到下个View
    nextWebView  = [[ WEBViewController   alloc ]  initWithNibName : @"WEBViewController"   bundle :nil ];
    [ self   presentModalViewController : nextWebView   animated : YES ];
     
     
    7.创建一个UIBarButton右边按钮
    UIBarButtonItem  *rightButton = [[ UIBarButtonItem   alloc ]  initWithTitle : @" 右边 "   style :UIBarButtonItemStyleDone   target : self   action : @selector (clickRightButton)];
    [ self . navigationItem   setRightBarButtonItem :rightButton];
     
    8.设置navigationBar隐藏
    self . navigationController . navigationBarHidden  =  YES ;//
     
    9.UIlabel多行文字自动换行 (自动折行)
    UIView *footerView = [[UIView alloc]initWithFrame:CGRectMake(10, 100, 300, 180)];
    UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(10, 100, 300, 150)];
    label.text = @"Hello world! Hello world!Hello world! Hello world! Hello world! Hello world! Hello world! Hello world!Hello world! Hello world! Hello world! Hello world! Hello world! Helloworld!";
    // 背景颜色为红色
    label.backgroundColor = [UIColor redColor];
    // 设置字体颜色为白色
    label.textColor = [UIColor whiteColor];
    // 文字居中显示
    label.textAlignment = UITextAlignmentCenter;
    // 自动折行设置
    label.lineBreakMode = UILineBreakModeWordWrap;
    label.numberOfLines = 0;
     
    10.代码生成Button
    CGRect  frame =  CGRectMake ( 0 ,  400 ,  72.0 ,  37.0 );
    UIButton  *button = [ UIButton   buttonWithType : UIButtonTypeRoundedRect ];
    button. frame  = frame;
    [button  setTitle : @" 新添加的按钮 "  forState:  UIControlStateNormal ];
    button. backgroundColor  = [ UIColor   clearColor ];
    button. tag  =  2000 ;
    [button  addTarget : self   action : @selector (buttonClicked:)  forControlEvents :UIControlEventTouchUpInside ];
    [ self . view   addSubview :button];
     
     
    10.2在xib文件中已经创建好Button,通过tag获取按钮 
     
    UIButton *testButton= (UIButton*)[self.view viewWithTag:100];
        [testButton addTarget:self action:@selector(test:) forControlEvents:UIControlEventTouchUpInside];
     
      //按钮事件
     
    -(void) test: (id) sender{
        UIAlertView *av = [[[UIAlertView alloc] initWithTitle:@"ceshi" message:@"test11111" delegate:nil cancelButtonTitle:@"OK"otherButtonTitles:nil] autorelease];
        [av show];
    }
     
    11.让某个控件在View的中心位置显示:
    (某个控件,比如 label , View ) label . center  =  self . view . center;
     
    12.自定义text各种效果:
    cell.backgroundColor = [UIColorscrollViewTexturedBackgroundColor];
    // 设置文字的字体 
    cell.textLabel.font = [UIFont fontWithName:@"AmericanTypewriter" size:100.0f];
    // 设置文字的颜色 
    cell.textLabel.textColor = [UIColor orangeColor];
    // 设置文字的背景颜色 
    cell.textLabel.shadowColor = [UIColor whiteColor];
    // 设置文字的显示位置 
    cell.textLabel.textAlignment = UITextAlignmentCenter;
     
    13.隐藏statusBar: 
    在程序的 viewDidLoad 中加入 
    [[UIApplication sharedApplication]setStatusBarHidden:YES animated:NO];
     
    14.更改AlertView背景:
    UIAlertView *theAlert = [[[UIAlertViewalloc] initWithTitle:@"Atention" 
                                                         message: @"I'm a Chinese!" 
                                                        delegate:nil  
                                                cancelButtonTitle:@"Cancel"  
                                                otherButtonTitles:@"Okay",nil] autorelease]; 
       [theAlert show]; 
       UIImage *theImage = [UIImageimageNamed:@"loveChina.png"];    
       theImage = [theImage stretchableImageWithLeftCapWidth:0topCapHeight:0]; 
       CGSize theSize = [theAlert frame].size; 
        UIGraphicsBeginImageContext(theSize);     
       [theImage drawInRect:CGRectMake(5, 5, theSize.width-10, theSize.height-20)];// 这个地方的大小要自己调整,以适应 alertview 的背景颜色的大小。 
       theImage = UIGraphicsGetImageFromCurrentImageContext();    
    UIGraphicsEndImageContext(); 
       theAlert.layer.contents = (id)[theImage CGImage];
     
     
    15.键盘透明: 
    textField.keyboardAppearance = UIKeyboardAppearanceAlert;
     
    16.状态栏的网络活动风火轮是否旋转: 
    [UIApplication sharedApplication].networkActivityIndicatorVisible , 默认值是 NO 。
     
    17.截取屏幕图片: 
    // 创建一个基于位 图的图形上下文并指定大小为CGSizeMake(200,400)
    UIGraphicsBeginImageContext(CGSizeMake(200,400)); 
     
    //renderInContext  呈现接受者及其子范围到 指定的上下文
    [self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
        // 返回 一个基于当前图形上下文的图片
     UIImage *aImage = UIGraphicsGetImageFromCurrentImageContext();
      // 移除栈顶 的基于当前位图的图形上下文
    UIGraphicsEndImageContext();
    // 以 png 格式 返回指定图片的数据
    imageData = UIImagePNGR epresentation(aImage);
     
    18.更改cell选中的背景: 
        UIView *myview = [[UIView alloc] init];
        myview.frame = CGRectMake(0, 0, 320, 47);
        myview.backgroundColor = [UIColorcolorWithPatternImage:[UIImage imageNamed:@"0006.png"]];
        cell.selectedBackgroundView = myview;:
     
     
    19.显示图片:
     
    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];
     
    20.能让图片适应框的大小(beta)
    NSString*imagePath = [[NSBundle mainBundle] pathForResource:@"XcodeCrash"ofType:@"png"];     
        UIImage *image = [[UIImage alloc]initWithContentsOfFile:imagePath]; 
            UIImage *newImage= [image transformWidth:80.f height:240.f]; 
        UIImageView *imageView = [[UIImageView alloc]initWithImage: newImage]; 
             [newImagerelease]; 
        [image release]; 
        [self.view addSubview:imageView];
     
    21. 实现点击图片进行跳转的代码:(生成一个带有背景图片的button,给button绑定想要的事件)
    UIButton *imgButton=[[UIButton alloc]initWithFrame:CGRectMake(0, 0, 120, 120)];
    [imgButton setBackgroundImage:(UIImage *)[self.imgArray objectAtIndex:indexPath.row] forState:UIControlStateNormal];
    imgButton.tag=[indexPath row];
    [imgButton addTarget:self action:@selector(buttonClick:) forControlEvents:UIControlEventTouchUpInside];
     
    22.键盘回收:
     
    1).增加一个button,相应touch down事件,隐藏键盘。这种方法,太山寨了。为了相应一个事件增加一个button太不值得的。
     
    .h
     
     
    - (IBAction)dismissKeyBoard:(id)sender;
     
    .m
     
    - (IBAction)dismissKeyBoard:(id)sender {
     
        [testText resignFirstResponder];
     
    }
     
     
    2).第二种方法:在背景图片上添加Tap事件,相应单击处理。这种方法,很好代替了button方式,但是如果UI上没有背景图片,这种方法又回到到第一种山寨的方法行列中。
     
    // 添加带有处理时间的背景图片
     
        UIImageView *backView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height)];
     
        backView.image = [UIImage imageNamed:@"small3.png"];
     
        
     
        backView.userInteractionEnabled = YES;
     
        UITapGestureRecognizer *singleTouch = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dismissKeyboard:)];
     
        [backView addGestureRecognizer:singleTouch];
     
        
     
        backView.tag = 110;
     
        [self.view addSubview:backView];
     
     
    -(void)dismissKeyboard:(id)sender{
     
        [text resignFirstResponder];
     
    }
     
    3).在xib文件中,修改xib文件的objects属性,默认是view属性,我们可以修改为UIControl属性,从而是xib文件相应touch down事件。这种方法,缺点就是没有xib就悲剧了。
    .h
     
     
    - (IBAction)dimissKeyboard:(id)sender;
     
    .m
     
    - (IBAction)dimissKeyboard:(id)sender {
     
        [text resignFirstResponder];
     
    }
     
     
    23、Gif图片的解析
     
    01
    //加载gif
    02
     
    03
      NSString *filePath = [[NSBundle mainBundle]pathForResource:@"bai3" ofType:@"gif"];
    04
     
    05
        NSData *data = [NSData dataWithContentsOfFile:filePath];
    06
     
    07
        CGImageSourceRef gif = CGImageSourceCreateWithData((CFDataRef)data, nil);
    08
     
    09
     //获取gif的各种属性
    10
     
    11
        CFDictionaryRef gifprops =(CGImageSourceCopyPropertiesAtIndex(gif,0,NULL));
    12
     
    13
        NSLog(@"_______%@",gifprops);
    14
     
    15
     
    16
        NSInteger count =CGImageSourceGetCount(gif);
    17
     
    18
        NSLog(@"________%d",count);
    19
     
    20
     
    21
       CFDictionaryRef gifDic = CFDictionaryGetValue(gifprops, kCGImagePropertyGIFDictionary);
    22
     
    23
     CFDictionaryRef delay = CFDictionaryGetValue(gifDic, kCGImagePropertyGIFDelayTime);
    24
     
    25
        NSLog(@"_______%@",delay);
    26
     
    27
     
    28
     //[gifDic objectForKey:(NSString *)kCGImagePropertyGIFDelayTime];
    29
     
    30
        //    NSNumber * w = CFDictionaryGetValue(gifprops, @"PixelWidth");
    31
     
    32
        //    NSNumber * h =CFDictionaryGetValue(gifprops, @"PixelHeight");
    33
     
    34
        //    float totalDuration = delay.doubleValue * count;
    35
     
    36
        //    float pixelWidth = w.intValue;
    37
     
    38
        //    float pixelHeight = h.intValue;
    39
     
    40
      //将gif解析成UIImage类型对象,并加进images数组中 
    41
     
    42
     
    43
        NSMutableArray *images = [NSMutableArray arrayWithCapacity:count];
    44
     
    45
        for(int index=0;index<count;index++)
    46
     
    47
        {
    48
     
    49
            CGImageRef ref = CGImageSourceCreateImageAtIndex(gif, index, nil);
    50
     
    51
            UIImage *img = [UIImage imageWithCGImage:ref];
    52
     
    53
            [images addObject:img];
    54
     
    55
            CFRelease(ref);
    56
     
    57
        }
    58
     
    59
        CFRelease(gifprops);
    60
     
    61
        CFRelease(gif);
        Gif的合成
    01
    - (void)exportAnimatedGif:(CGImageSourceRef )gif :(NSMutableArray *)images
    02
     
    03
    {
    04
     
    05
           NSString *path = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@"animated.gif"];
    06
     
    07
        CGImageDestinationRef destination = CGImageDestinationCreateWithURL(( CFURLRef)[NSURL fileURLWithPath:path],
    08
     
    09
                                                                            kUTTypeGIF,
    10
     
    11
                                                                            images.count,
    12
     
    13
                                                                            NULL);
    14
     
    15
        UIImage *image;
    16
     
    17
        for (int i = 0; i<images.count; i++)
    18
     
    19
        {
    20
     
    21
            image = images[i];
    22
     
    23
            CFDictionaryRef gifprops =(CGImageSourceCopyPropertiesAtIndex(gif,i,NULL));
    24
     
    25
            CFDictionaryRef gifDic = CFDictionaryGetValue(gifprops, kCGImagePropertyGIFDictionary);
    26
     
    27
            NSNumber *delay = CFDictionaryGetValue(gifDic, kCGImagePropertyGIFDelayTime);
    28
     
    29
            NSDictionary *gifDelay = [NSDictionary dictionaryWithObject:[NSDictionary dictionaryWithObject:delay forKey:(NSString *)kCGImagePropertyGIFDelayTime]
    30
     
    31
                                                                 forKey:(NSString *)kCGImagePropertyGIFDictionary];
    32
     
    33
             
    34
     
    35
            CGImageDestinationAddImage(destination,image.CGImage, (CFDictionaryRef)gifDelay);
    36
     
    37
            CGImageDestinationSetProperties(destination, ( CFDictionaryRef)gifprops);
    38
     
    39
        }
    40
     
    41
         
    42
     
    43
    //    CGImageDestinationSetProperties(destination, ( CFDictionaryRef)gifprops);
    44
     
    45
        CGImageDestinationFinalize(destination);
    46
     
    47
        CFRelease(destination);
    48
     
    49
        NSLog(@"animated GIF file created at %@", path);
    50
     
    51
     
    52
    } 24.将一个UIView对象的内容保存为UIImage
     
    01
    + (UIImage*)imageFromView:(UIView*)view{
    02
     
    03
    UIGraphicsBeginImageContextWithOptions(view.bounds.size, YES, view.layer.contentsScale);
    04
     
    05
    [view.layer renderInContext:UIGraphicsGetCurrentContext()];
    06
     
    07
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    08
     
    09
    UIGraphicsEndImageContext();
    10
     
    11
    return image;
    12
     
    13
    }注意:生成的图片的scale和view的scale一致,这样才可以保证图片的效果和view显示的完全一致,使用renderInContext方法可以让subviews的内容也显示的图片里。
  • 相关阅读:
    G1垃圾回收器的参数配置(JDK9的默认垃圾回收器)
    top.layer.open父子调用
    前端非空方法
    JS接收后台拼接好的标签 Uncaught SyntaxError: Invalid or unexpected token
    oracle 历史记录查询sql
    【python】使用pyinstaller将python程序打包成可执行的exe
    【python】使用pyinstaller打包exe闪退,cmd查看exe报错原因
    【python】turtle绘图几个超好看的颜色
    【python】trutle绘制送给女神的玫瑰花图
    【python】turtle龟绘制无敌螺旋转
  • 原文地址:https://www.cnblogs.com/yinyakun/p/3524925.html
Copyright © 2011-2022 走看看