一些会遗忘的代码属性
多用于tableView的选中
UIViewController* XXX=[[NSClassFromString([_viewControllerArray objectAtIndex:indexPath.row]) alloc] init];
代码块里面需要些self的话就在外面声明__unsafe_unretained typeof(self) superself = self;代替self,防止内存泄露
//9宫格用View做的话记得初始化前加几行代码避免cell重用出BUG [self.view removeFromSuperview]; PhotosView* view=[PhotosView new]; view.clipsToBounds=YES;//View释放则里面的子控件释放 [self addSubview:view];
让组件成为第一响印者:比如进去程序就让他成为编辑状态
[_searchController.searchBar becomeFirstResponder];
[_textField resignFirstResponder];//键盘收起
[_textField becomeFirstResponder]//让它成为第一响应者
刷新表单
[_tableView reloadData];
//cell的实现方法,避免cell的重用造成视图混乱 if (!cell) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:cellIdentifier]; } else { // 删除Cell的所有子视图 while ([cell.contentView.subviews lastObject] != nil) { [(UIView*)[cell.contentView.subviews lastObject] removeFromSuperview]; } }
刷新部分表格
[_tableView reloadRowsAtIndexPaths:[NSArray arrayWithObjects:indexPath,nil] withRowAnimation:(UITableViewRowAnimation)];
刷新Section
NSIndexSet *indexSet = [[NSIndexSet alloc] initWithIndex:0];
[self.tableView reloadSections:indexSet withRowAnimation:UITableViewRowAnimationFade];
让表格不移动
_tableView.bounces = NO;
#pragma mark 点击cell方法
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
[tableView deselectRowAtIndexPath:indexPath animated:YES];//选中后的反显颜色即刻消失
}
点击cell页面跳转:
将NSString传进controller里面进行跳转,用代码块传值方式
cell里面 .h
typedef void (^talker)(NSString* username); @property (nonatomic,copy)talker newTalker; .m UIButton* btn1=[[UIButton alloc]initWithFrame:CGRectMake(CGRectGetMaxX(btn.frame)+30, CGRectGetMaxY(textLable.frame), 50, 30)]; btn1.tag=101; [btn1 setTitle:@"测试" forState:UIControlStateNormal]; [btn1 setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]; [btn1 addTarget:self action:@selector(startTalk) forControlEvents:UIControlEventTouchUpInside]; #pragma mark 代码块传值 - (void)startTalk { NSString* userName = textLable.text; self.newTalker(userName); } //UITabelViewCell实现方法里面 cell.newTalker = ^(NSString* username){ [self jumpTalkPageWith:username]; }; - (void)jumpTalkPageWith:(NSString*)username { NSLog(@"%@",username); }
计算数组里面的数值
NSArray *testArray = [NSArray arrayWithObjects:@"2.0", @"2.3", @"3.0", @"4.0", nil];
NSNumber *sum = [testArray valueForKeyPath:@"@sum.floatValue"];
http://www.cnblogs.com/jerehedu/p/4607368.html core Data教学
//动画代码块
[UIView animateWithDuration:0.2 animations:^{
view.frame=CGRectMake(0, 374,self.view.frame.size.width, 35);
//实现组件需要做的动画
}];//动画代码块
[UIView animateWithDuration:0.8 animations:^{
self.maskBut.alpha=0;
but1.frame=self.currentRect;//动画实现代码
}completion:^(BOOL finished) {
[self.maskBut removeFromSuperview];
self.navigationController.navigationBar.hidden=NO;//动画播放完时调用的代码
}];
视图层次
将一个UIView显示在最前面(父视图里面的最前端),调用其父视图的 bringSubviewToFront方法。
将一个UIView层推送到背后(父视图里面的最后端),调用其父视图的 sendSubviewToBack方法。
如 [xxxxx bringSubviewToFront:yyyy]; yyyy必须是xxxxx的subview,调用后,yyyy显示在xxxxx里面所有subview的最前端
http://www.cnblogs.com/try-wyh/p/4836298.html 安装插件管理
清除以前的以防万一 rm -rf ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins/Alcatraz.xcplugin rm -rf ~/Library/Application\ Support/Alcatraz defaults delete com.apple.dt.Xcode DVTPlugInManagerNonApplePlugIns-Xcode-6.4 安装 curl -fsSL https://raw.github.com/supermarin/Alcatraz/master/Scripts/install.sh | sh
//Label点击事件 UILabel* textLabel=[UILabel new]; textLabel.userInteractionEnabled=YES; UITapGestureRecognizer* labelTapGestureRecognizer= [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(labelTouchUpInside:)]; [textLabel addGestureRecognizer:labelTapGestureRecognizer];
textLabel.adjustsFontSizeToFitWidth = YES;//自适应字体
-(void)labelTouchUpInside:(UITapGestureRecognizer*)recognizer{ UILabel *label=(UILabel*)recognizer.view; NSLog(@"%@被点击了",label.text); }
中间一点 ・・・・・・
释放控件
[textLabel removeFromSuperview];
视图的层级
附:
将一个UIView显示在最前面只需要调用其父视图的 bringSubviewToFront()方法。
将一个UIView层推送到背后只需要调用其父视图的 sendSubviewToBack()方法。