iOS开发使用技巧记录

注:内容来自我或互联网

  • 输入屏幕上移和恢复
// 需要实现UITextFieldDelegate//在UITextField 编辑之前调用方法 - (void)textFieldDidBeginEditing:(UITextField *)textField { [self animateTextField: textField up: YES]; } //在UITextField 编辑完成调用方法 - (void)textFieldDidEndEditing:(UITextField *)textField { [self animateTextField: textField up: NO]; } //视图上移的方法 - (void) animateTextField: (UITextField *) textField up: (BOOL) up { //设置视图上移的距离,单位像素 const int movementDistance = 100; // tweak as needed //三目运算,判定是否需要上移视图或者不变 int movement = (up ? -movementDistance : movementDistance); //设置动画的名字 [UIView beginAnimations: @"Animation" context: nil]; //设置动画的开始移动位置 [UIView setAnimationBeginsFromCurrentState: YES]; //设置动画的间隔时间 [UIView setAnimationDuration: 0.20]; //设置视图移动的位移 self.view.frame = CGRectOffset(self.view.frame, 0, movement); //设置动画结束 [UIView commitAnimations]; }

  • 点击空白隐藏键盘
//隐藏键盘 - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { [self.view endEditing:YES]; }

  • AutoLayout
    iOS 8 AutoLayout与Size Class
    iOS开发使用技巧记录
    文章图片
    • 【iOS开发使用技巧记录】部分方法名

      iOS开发使用技巧记录
      文章图片
      [myView setAutoresizingMask:UIViewAutoresizing];
  • 字符串加密
//首先导入系统库函数 #import

//sha256加密 + (NSString *)getSha1String:(NSString *)srcString{ const char *cstr = [srcString UTF8String]; NSData *data = https://www.it610.com/article/[NSData dataWithBytes:cstr length:srcString.length]; uint8_t digest[CC_SHA256_DIGEST_LENGTH]; CC_SHA256(data.bytes, (int)data.length, digest); NSMutableString* result = [NSMutableString stringWithCapacity:CC_SHA256_DIGEST_LENGTH * 2]; for(int i = 0; i < CC_SHA256_DIGEST_LENGTH; i++) { [result appendFormat:@"%02x", digest[i]]; } return result; }//MD5加密 + (NSString *)getMd5_32Bit_String:(NSString *)srcString{ const char *cstr = [srcString UTF8String]; uint8_t digest[CC_MD5_DIGEST_LENGTH]; CC_MD5(cstr, (int)strlen(cstr), digest); NSMutableString *result = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH*2]; for (int i = 0; i < CC_MD5_DIGEST_LENGTH; i++) { [result appendFormat:@"%02x",digest[i]]; } return result; }

  • 将UIColor转换为UIImage
// 根据颜色生成一张尺寸为1*1的相同颜色图片 + (UIImage *)imageWithColor:(UIColor *)color { // 描述矩形 CGRect rect=CGRectMake(0.0f, 0.0f, 1.0f, 1.0f); // 开启位图上下文 UIGraphicsBeginImageContext(rect.size); // 获取位图上下文 CGContextRef context = UIGraphicsGetCurrentContext(); // 使用color演示填充上下文 CGContextSetFillColorWithColor(context, [color CGColor]); // 渲染上下文 CGContextFillRect(context, rect); // 从上下文中获取图片 UIImage *theImage = UIGraphicsGetImageFromCurrentImageContext(); // 结束上下文 UIGraphicsEndImageContext(); return theImage; }

  • 设置TarBar顶部线条颜色
//设置TabBar顶部线的颜色 [self.tabBar setBackgroundImage:[[UIImage alloc] init]]; [self.tabBar setShadowImage:[UIImage imageWithColor:RGBA(218, 218, 218, 1)]];

  • 使View的部分位置不响应事件,传递给下一层
//重写View的- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event; - (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event{ return !CGRectContainsPoint(self.tableHeaderView.frame, point); }

    推荐阅读