当前位置: 首页 > news >正文

iOS 开发小常识 开发笔记

一   自定义push方法

/*  参数说明             

 *  controllerName : push的目标页 例:@“testcontroll”    ---注意不带.h

 *  isNibPage     : 目标页是否带 xib 文件

 *  setHideTabBar : 当前页是否隐藏 tabBar      -----注意 是当前页 非目标页

 *  setDelegate   : 设置委托

 */

- (void)pushNewViewController:(NSString *)controllerName isNibPage:(BOOL) _isNib setHideTabBar:(BOOL) _bool setDelegate:(BOOL) _setdelegate{

    

    if (controllerName.length <= 0) {

        return;

    }

    

    Class   class_Page = NSClassFromString((NSString *)controllerName);

    id viewCtrl_Page = _isNib ? [[class_Page alloc] initWithNibName:controllerName bundle:nil]

    : [[class_Page alloc] init];

    

    if (_setdelegate) { [viewCtrl_Page setDelegate:self]; }

    if (!m_Params)    { m_Params = [[NSMutableDictionaryalloc]init]; }

    

    [m_Params setValue:_bool == YES ? @"1" : @"0" forKey:@"HideTabBar"];

    [viewCtrl_Page setM_Params:[m_Params retain]];

    

    if (isLoginPage) {

        if ([GlobalisUserLogin]) {

            [self.navigationControllerpushViewController:viewCtrl_Page animated:YES];

        }

        else{

            [selfshowLoginController];

        }

    }

    else

        [self.navigationControllerpushViewController:viewCtrl_Page animated:YES];

    

    [viewCtrl_Page release];

    

    if (m_Params) {

        [m_Params release];

    }

}

 

二       根据TableView里的button获取父级UITableViewCell

   1.   通过对像的父级查找

         UIButton *btn_checkBox = (UIButton *)sender;

           UITableViewCell * cell = (UITableViewCell *)[btn_checkBox superview];

           NSIndexPath* indexPath = [m_tableViewindexPathForCell:cell];

   2.   通过点击座标

// 检查用户点击按钮时的位置,并转发事件到对应的accessory tapped事件
- (void)btnClicked:(id)sender event:(id)event
{
NSSet *touches = [event allTouches];
UITouch *touch = [touches anyObject];
CGPoint currentTouchPosition = [touch locationInView:self.tableView];
NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:currentTouchPosition];
if(indexPath != nil)
{
[self tableView:self.tableView accessoryButtonTappedForRowWithIndexPath:indexPath];
}
}

 

 

三  常常要算一段文字的长度和高度。下面这段代码可以帮到你

CGSize  fontsize = [tmpCoupon.couponDescsizeWithFont:[UIFontboldSystemFontOfSize:13] constrainedToSize:CGSizeMake(162, MAXFLOAT) lineBreakMode:NSLineBreakByWordWrapping];

 

  // 计算文本的大小  ios7.0

    CGSize textSize = [textViewTemple.text boundingRectWithSize:CGSizeMake(self.imagewidth, MAXFLOAT)                                                         options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading // 文本绘制时的附加选项

                                                     attributes:dic  context:nil].size;

四  文本编辑的时候键盘档住页面,下面代码自动收缩

- (void)textFieldDidBeginEditing:(UITextField *)textField{

  CGRect frame = textField.frame;

  int offset = frame.origin.y + 32 - (self.view.frame.size.height - 216.0-10);

  NSTimeInterval animationDuration = 0.30f;

     [UIView beginAnimations:@"ResizeForKeyBoard" context:nil];

[UIView setAnimationDuration:animationDuration];
float width = self.view.frame.size.width;
float height = self.view.frame.size.height;
if(offset > 0){
CGRect rect = CGRectMake(0.0f, -offset,width,height);
self.view.frame = rect;
}
[UIView commitAnimations];

}

- (BOOL)textFieldShouldReturn:(UITextField *)textField{
NSTimeInterval animationDuration = 0.30f;
[UIView beginAnimations:@"ResizeForKeyboard" context:nil];
[UIView setAnimationDuration:animationDuration];
CGRect rect = CGRectMake(0.0f, 0.0f, self.view.frame.size.width, self.view.frame.size.height);
self.view.frame = rect;
[UIView commitAnimations];

[textField resignFirstResponder];
return YES;

// 十六进制设置alpha值

+ (UIColor *)convertHexToRGB:(NSString *)hexString alpha:(CGFloat)alpha {

    NSString *str;

    if ([hexString hasPrefix:@"0x"] || [hexString hasPrefix:@"0X"]) {

        str=[[NSString alloc] initWithFormat:@"%@",hexString];

    }else {

        str=[[NSString alloc] initWithFormat:@"0x%@",hexString];

    }

    int rgb;

    sscanf([str cStringUsingEncoding:NSUTF8StringEncoding], "%i", &rgb);

    [str release];

    int red=rgb/(256*256)%256;

    int green=rgb/256%256;

    int blue=rgb%256;

    UIColor *color=[UIColor colorWithRed:red/255.0 green:green/255.0 blue:blue/255.0 alpha:alpha];

    return color;

}

五  .  数组排序

       NSSortDescriptor * sortDescriptor = [[NSSortDescriptoralloc] initWithKey:@"createTime"ascending:NO];

       [arrMsgListsortUsingDescriptors:[NSArrayarrayWithObject:sortDescriptor]];

转载于:https://www.cnblogs.com/yswdarren/p/3554436.html

相关文章:

  • 程序员修炼之道(一)
  • DevExpress.XtraEditors.TextEdit 设为密码输入框
  • 层次遍历二叉树(编程之美3.10)
  • 算法起步之Prim算法
  • 我比谁都相信努力奋斗的意义
  • jsp页面中从forEach里向action里面传递其中的一个对象
  • CentOS版本选择说明
  • 读书笔记——《设计心理学2:如何管理复杂》教你应付复杂
  • 用户故事(User Story)
  • TQ2440开发板移植UBOOT-2010.06总结(3)
  • ext button 属性
  • IE,URL中文读取
  • python进阶一_简介,安装与环境部署
  • 判断投递失败原因方法
  • css入门
  • JS中 map, filter, some, every, forEach, for in, for of 用法总结
  • [微信小程序] 使用ES6特性Class后出现编译异常
  • Flex布局到底解决了什么问题
  • Hibernate【inverse和cascade属性】知识要点
  • JavaScript学习总结——原型
  • js
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • Linux快速配置 VIM 实现语法高亮 补全 缩进等功能
  • Magento 1.x 中文订单打印乱码
  • passportjs 源码分析
  • RxJS 实现摩斯密码(Morse) 【内附脑图】
  • Vue官网教程学习过程中值得记录的一些事情
  • vue和cordova项目整合打包,并实现vue调用android的相机的demo
  • 程序员最讨厌的9句话,你可有补充?
  • 初识 webpack
  • 分享一个自己写的基于canvas的原生js图片爆炸插件
  • 七牛云假注销小指南
  • 前端知识点整理(待续)
  • 如何胜任知名企业的商业数据分析师?
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • 我感觉这是史上最牛的防sql注入方法类
  • 优化 Vue 项目编译文件大小
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • 【云吞铺子】性能抖动剖析(二)
  • 带你开发类似Pokemon Go的AR游戏
  • 教程:使用iPhone相机和openCV来完成3D重建(第一部分) ...
  • 树莓派用上kodexplorer也能玩成私有网盘
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • ​如何在iOS手机上查看应用日志
  • !!java web学习笔记(一到五)
  • "无招胜有招"nbsp;史上最全的互…
  • $NOIp2018$劝退记
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第2节(共同的基类)
  • (html转换)StringEscapeUtils类的转义与反转义方法
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (八)光盘的挂载与解挂、挂载CentOS镜像、rpm安装软件详细学习笔记
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (求助)用傲游上csdn博客时标签栏和网址栏一直显示袁萌 的头像
  • (一)python发送HTTP 请求的两种方式(get和post )
  • (转)C#调用WebService 基础