常使用的地方(持续更新...)

下一个控制器有xib的时候:

GoodsDetailsViewController *gdVC = [[GoodsDetailsViewController alloc]initWithNibName:@"GoodsDetailsViewController" bundle:[NSBundle mainBundle]];

[self.navigationController pushViewController:gdVC animated:YES];

推出的是tableview的cell有xib的时候:

DIYSelectHousingTypeCell *cell = [tableView dequeueReusableCellWithIdentifier:@"DIYSelectHousingTypeCell"];
if (!cell) {
cell = [[[NSBundle mainBundle] loadNibNamed:@"DIYSelectHousingTypeCell" owner:self options:nil] firstObject];
}

加载一个xib格式的view

OrderStateView *stateView = [[[NSBundle mainBundle]loadNibNamed:@"OrderStateView" owner:self options:nil] firstObject];

手动添加约束:

[bottomView mas_makeConstraints:^(MASConstraintMaker *make) {
make.bottom.equalTo(@0);
make.left.equalTo(@0);
make.right.equalTo(@(Width));
make.height.equalTo(@40);
// make.height.equalTo(self.scrollerView.mas_height);
}];

pragma mark - refresh

  • (void)loadMJTableViewFooter
    {
    MJRefreshAutoNormalFooter *footer = [MJRefreshAutoNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(loadMoreData)];
    [footer setTitle:@"" forState:MJRefreshStateIdle];
    [footer setTitle:@"正在加载更多" forState:MJRefreshStateRefreshing];
    [footer setTitle:@"已经全部显示了" forState:MJRefreshStateNoMoreData];
    footer.stateLabel.font = [UIFont systemFontOfSize:15];
    footer.stateLabel.textColor = [UIColor grayColor];
    _tableView.footer = footer;
    }

  • (void)loadMoreData
    {
    [self downloadDataWithIsRefresh:YES];
    }

//如果 想让某个方向上不能滚动 那么这个方向对应的尺寸数值传0
// self.contentSize = CGSizeMake(4*_scrollView.width, 0);
//头视图上按钮的点击事件
-(void)groupChooseClick:(UIButton *)sender
{
sender.selected = !sender.selected;//让组视图上的按钮的选择状态为相反的状态
CartGroupItem * groupItem = self.dataSources[sender.tag];//获取数据源中的这个组
groupItem.groupIsSelected = sender.selected;//将这个组里面的selected属性设置成按钮的属性
for(CartItem * cart in groupItem.cartItems)//遍历这个组里面所有的数据,将其的选择状态设置成按钮的选择状态
{
cart.goodsSelected = sender.selected;
//这是将其加入到购买的数组 如果按钮的选择状态为YES的话
if(sender.selected == YES)
{
//如果将要购买的数组里面没有数据,就将数据插入到里面
if(self.payCartItems.count ==0)
{
[self.payCartItems addObject:cart];
}
//否则的话就判断里面有没有同一个数据,如果有先将其删除再添加 以保证没有重复的数据
else
{
for (int i =0; i < self.payCartItems.count; I++)
{
if([cart isEqual:self.payCartItems[I]])
{
[self.payCartItems removeObject:cart];
}
}
[self.payCartItems addObject:cart];
}
}
else
{
[self.payCartItems removeObject:cart];
}
}
[self calculateAllCartsPrice];//这是计算所有的商品的总价
//定义一个局部变量 为全选按钮的选择状态
BOOL isSelected = YES;
for (CartGroupItem * groupItem in self.dataSources)//遍历数据源中所有组的选择状态,如果全都是YES将其置成YES 否则将其置成NO
{
if(groupItem.groupIsSelected == NO)
{
isSelected = NO;
break;
}
isSelected = YES;
}
//这里的 self.selectedAllBtn 是全局的全选按钮
self.selectedAllBtn.selected = isSelected;//设置全选按钮的选择状态
[self showNavigationTitle];//这是显示navagationBar上title的方法
[self.goodsTableView reloadData];//刷新TableView
}

跳转:

SensorsDataViewController *vc = [[SensorsDataViewController alloc]initWithNibName:@"SensorsDataViewController" bundle:[NSBundle mainBundle]];

UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:vc];
nav.navigationBar.translucent = NO;
vc.itemNum = indexPath.row;
[self presentViewController:nav animated:YES completion:^{
}];

本地读取json:

NSString *jsonPath = [[NSBundle mainBundle] pathForResource:@"detectioncenter" ofType:@"js"];
NSData *data=[NSData dataWithContentsOfFile:jsonPath];
NSError *error;
id jsonObject=[NSJSONSerialization JSONObjectWithData:data
options:NSJSONReadingAllowFragments
error:&error];
NSMutableArray *array = [jsonObject valueForKey:@"result"];
for (NSDictionary *dic in array) {
FarmlandModel *model = [FarmlandModel new];
[model setValuesForKeysWithDictionary:dic];
[self.array addObject:model];
}
[_tableView reloadData];

黑色半透明背景遮罩

self.blackView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, Width, Height)];
self.blackView.backgroundColor = [UIColor colorWithWhite:0.f alpha:0.5];
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(blackViewTap)];
[self.blackView addGestureRecognizer:tap];
}

解决webview滑动卡顿的问题

self.webView.scrollView.decelerationRate = UIScrollViewDecelerationRateNormal;

返回结果打成plist文件 NSFileManager *fileManager = [NSFileManager defaultManager];NSURL *documentPath = [fileManager URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask][0] ;NSURL *filePath = [documentPath URLByAppendingPathComponent:@"datasource.plist"];[resultArray writeToURL:filePath atomically:YES];NSLog(@"文件存储路径%@", filePath);

设置网络图片

NSString *picString = [NSString stringWithFormat:@"%@/cjh/picture/merchant/%@",URL,[shopArray[indexPath.row] valueForKey:@"HEAD_IMAGE"]];
NSURL picURL = [NSURL URLWithString:picString];
[cell.goodsImageView sd_setImageWithURL:picURL];
//dictionary转化成nsstring
-(NSString
)DataTOjsonString:(id)object
{
NSString *jsonString = nil;
NSError *error;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:object
options:NSJSONWritingPrettyPrinted // Pass 0 if you don't care about the readability of the generated string
error:&error];
if (! jsonData) {
NSLog(@"Got an error: %@", error);
} else {
jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
}
return jsonString;
}

拨打电话

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:[NSString stringWithFormat:@"telprompt://%@", self.phoneString]] options:@{} completionHandler:^(BOOL success) {
}];

拿到cell里面某个button的indexPath

ShoppingCarContentCell *cell = (ShoppingCarContentCell *)button.superview.superview;
NSIndexPath *indexPath = [self.tabView indexPathForCell:cell];

IQKeyBoard 对于searchBar不可用解决办法:

image

导航栏右侧设置两个按钮

UIButton *contactButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 30, 30)];
[contactButton setImage:[UIImage imageNamed:@"service_black"] forState:UIControlStateNormal];
[contactButton addTarget:self action:@selector(contact:) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *leftBtnItem = [[UIBarButtonItem alloc] initWithCustomView:contactButton];
UIButton *informationButton = [[UIButton alloc]initWithFrame:CGRectMake(0, 0, 30, 30)];
[informationButton setImage:[UIImage imageNamed:@"mine_message"] forState:UIControlStateNormal];
[informationButton addTarget:self action:@selector(information:) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *rightBtnItem = [[UIBarButtonItem alloc]initWithCustomView:informationButton];
self.navigationItem.rightBarButtonItems = @[rightBtnItem,leftBtnItem];

返回上两页

NSInteger index = [[self.navigationController viewControllers] indexOfObject:self];
[self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:index - 2]animated:YES];

导航条右侧按钮

UIButton *submitButton = [UIButton buttonWithType:UIButtonTypeCustom];
submitButton.frame = CGRectMake(0, 0, 35, 35);
[submitButton setTitleColor:colorWithMainColor forState:UIControlStateNormal];
[submitButton setTitle:@"提交" forState:normal];
submitButton.titleLabel.font = [UIFont systemFontOfSize:15.0];
[submitButton addTarget:self action:@selector(submitInfo:) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *rightButtonItem = [[UIBarButtonItem alloc] initWithCustomView:submitButton];
self.navigationItem.rightBarButtonItem = rightButtonItem;

fd防止崩溃

self.nameLabel.preferredMaxLayoutWidth = YGScreenWidth - 30; //fd适配高度 numberOfLines为0的label加上这句话 等于的宽度是实际的宽度 如果不加这句话在手机是10.2的时候会崩溃

iOS字符串中包含%

百分号的转换,NSString中需要格式化的字符串中百分号使用%%表示,而char*中百分号也是使用%%表示。
例如:NSLog(@"%%%@%%",@"hello"),控制台会打印出%hello%。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,980评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,178评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,868评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,498评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,492评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,521评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,910评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,569评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,793评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,559评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,639评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,342评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,931评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,904评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,144评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,833评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,350评论 2 342

推荐阅读更多精彩内容