设置颜色,平铺图片
[UIColor colorWithPatternImage:[UIImage p_w_picpathNamed:@"bg_actionSheet_panel.png"]];
2.设置p_w_picpathview的内容模式
p_w_picpathView.contentMode
3. addChildViewController:方法是添加子控制器,有顺序之分,如一下团购控制器可以这么拿到:
UIViewController *old = self.childViewControllers[0];
地图控制器
UIViewController *old = self.childViewControllers[1];
。。。。。。
//1.团购
TGDealListController *deal = [[TGDealListController alloc] init];
[deal.view setBackgroundColor:[UIColor blackColor]];
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:deal];
[self addChildViewController:nav];
//2.地图
TGMapController *map = [[TGMapController alloc] init];
[map.view setBackgroundColor:[UIColor greenColor]];
UINavigationController *nav1 = [[UINavigationController alloc] initWithRootViewController:map];
[self addChildViewController:nav1];
//3.收藏
TGCollectController *collect = [[TGCollectController alloc] init];
[collect.view setBackgroundColor:[UIColor blueColor]];
UINavigationController *nav2 = [[UINavigationController alloc] initWithRootViewController:collect];
[self addChildViewController:nav2];
//4.我的
TGMineController *mine = [[TGMineController alloc] init];
[mine.view setBackgroundColor:[UIColor yellowColor]];
UINavigationController *nav3 = [[UINavigationController alloc] initWithRootViewController:mine];
[self addChildViewController:nav3];
4.ipad上 不管横屏还是竖屏,
self.view.frame.size.width = 屏幕宽高最小的值
self.view.frame.size.height = 屏幕宽高最大的值
5.//1.appearance方法返回一个导航栏的外观对象
//修改了这个外观对象,相当于修改了整个项目中的外观
UINavigationBar *bar = [UINavigationBar appearance];
//2.设置导航栏的背景图片
[bar setBackgroundImage:[UIImage p_w_picpathNamed:@"navigationbar_background.png"] forBarMetrics:UIBarMetricsDefault];
6.- (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:
(NSInteger)topCapHeight 这个函数是UIImage的一个实例函数,它的功能是创建一个内容可拉伸,而边角不拉伸的图片,需要两个参数,第一个是左边不拉伸区域的宽度,第二个参数是上面不拉伸的高度。
根据设置的宽度和高度,将接下来的一个像素进行左右扩展和上下拉伸。
注意:可拉伸的范围都是距离leftCapWidth后的1竖排像素,和距离topCapHeight后的1横排像素。
参数的意义是,如果参数指定10,5。那么,图片左边10个像素,上边5个像素。不会被拉伸,x坐标为11和一个像素会被横向复制,y坐标为6的一个像素会被纵向复制。
注意:只是对一个像素进行复制到一定宽度。而图像后面的剩余像素也不会被拉伸。
7.
+(void)load方法是将类加载进内存时调用的(类还未使用),一个类只能调一次这个方法
+(void)initialize方法是当第一次使用这个类时调用,一个类只会在第一次使用时调这个方法
8.在pad上,controller控制器有modalPresentationStyle属性,可以设置模态出来的效果
nav.modalPresentationStyle = UIModalPresentationFormSheet;
[self presentViewController:nav animated:YES completion:nil];
模态推出页面时,可以设置controller的modalTransitionStyle属性,可以设置模态推出效果
9.监听屏幕旋转通知
//监听屏幕旋转通知
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(screenRotate) name:UIDeviceOrientationDidChangeNotification object:nil];
#pragma mark -屏幕旋转时调用
-(void)screenRotate
{
NSLog(@"screenRotate");
}
10.将json转成plist文件,反过来转换也是一样思路
NSArray *array = [NSJSONSerialization JSONObjectWithData:[NSData dataWithContentsOfFile:@"。。。。。.json"] options:NSJSONReadingAllowFragments error:nil];
[array writeToFile:@"。。。。。.plist" atomically:YES];
11.tableView的两个代理方法
//显示每个section的标题
-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
//显示每个section索引标题,(显示在右边)
-(NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView
12.
如果要让某个控制器的view添加在当前控制器上面的化,最好先让该控制器成为当前控制器的子控制器
[self addChileViewController:控制器变量名];
//换句话说:如果a控制器的view添加在b控制器的view上,那么a的view是b的view的子视图,a控制器最好也要是b的子控制器,b控制器通过addChileViewController:方法添加a控制器为子控制器
13.延时调用某个方法
[self performSelector:@selector(locaationClick) withObject:nil afterDelay:0.5];
14.UIImageView用[[UIImageView alloc] initWithImage:img];创建的宽高默认是图片img的宽高。
UIImage *img = [UIImage p_w_picpathNamed:@"separator_topbar_item"];
UIImageView *divider = [[UIImageView alloc] initWithImage:img];
15.
清空前面设置的CGAffineTransform属性
_scrollView.transform = CGAffineTransformIdentity;
16.
//防止代码块里重复return TGDealTopMenu对象
__unsafe_unretained TGDealTopMenu *menu = self;
_showingMenu.hideBlock = ^{
// 1.取消选中当前的item
//用->直接访问成员变量
menu->_selectedItem.selected = NO;
menu->_selectedItem = nil;
// 2.清空正在显示的菜单
menu->_showingMenu = nil;
};
17.数组有个makeObjectsPerformSelector:方法,作用是让数组里的每个对象都调用这个方法
例子:
//让数组里面的所有子控件都执行removeFromSuperview这个方法
[self.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)];
18.UIView自带方法:-(void)layoutSubviews方法是在屏幕宽高改变时,比如横竖屏转换时会调用
#pragma mark -控件本身的宽高发生改变时调用
-(void)layoutSubviews
{
[super layoutSubviews];
......
}
19.有一堆控件需要显示,按格子那样排列,计算有几行
int rows = (控件总个数 + 每行列数 - 1) / 每行列数
20.要设置控件的高度或者宽度,不能直接用 视图.frame.size.height = 100;
但可以: CGRect frame = 视图.frame;
frame.size.height = 100;
视图.frame = frame;