在编写QQ主界面的心得
在学了这么多的UI后想做一个qq主界面第一次做不是很好.但是我也注意到层次如何分配的问题。因为中间有一个tableView如何添加这个视图了,在我第一次犯了一个这样的错误,不是我想自定义一个TabBar我一开始试了让tableViewController成为根控制器但是在添加TabBar的时候他是活动的这样是不行的,后来尝试了用UIViewController为根控制器虽然可以解决自定义TabBar的移动的问题,但是在控制器的View添加tableView时tableView继承滑动视图的属性就没有了只能限制在试图控制器view上不能滑动。以上的两种都是不可以的。最后我用UITabBarConroller为控制器,让它去管理各种视图的控制器,处理好各个视图控制器的位置,这是向里面添加一个控制器的代码:
TableViewController *tableView=[[TableViewController alloc]init];
UINavigationController *firstNavigation=[[UINavigationController alloc]initWithRootViewController:tableView];
[firstNavigation.navigationBar setBackgroundImage:[UIImage imageNamed:@"65329381"] forBarMetrics:UIBarMetricsCompact];
。。。。。。。。然后用数组管理各个UINavigationController的对象即可(作为新手经常写成创建的视图)。
//__________________新手注意的问题___________________________________________________________
1.在自定义TabBar 的时候背景图片在最下面按钮在最上面。但是为什么层次没有问题会遇到按钮不能点击且不能响应相应的事件,这是因为你的UIbutton是添加在UIimageView上,它只是个View不会响应事件的。这是你的打开UIimageView的与用户的交互代码。imageView.userInteractionEnabled=YES;
2.如何设置圆形的按钮;
button.layer.cornerRadius = width/2.0;
button.layer.masksToBounds = width/2.0;
设置按钮圆角半径和界面边界的宽/2.0即可,用这个可以获得各种button的形状,因除的数不同而异。
//获取button的宽
NSInteger width=button.frame.size.width;
3.如何设置透明的UINavigationController,有很多的界面为了保证界面的一致性通常吧UINavigationController设置透明,只要实现这个UINavigationController风格的代码
[firstNavigation.navigationBar setBackgroundImage:[UIImage imageNamed:@"65329381"] forBarMetrics:UIBarMetricsCompact];这个UIBarMetricsCompact的风格,图片可以随便的添加。
4.在设置tableView的位置是我是习惯在- (void)viewDidLoad这个方法里面设置他的位置,但是无论怎么设置都没有改变,(可能是已经添加了tableView的视图吧默认不变吧,不过应该等默认的初始化设置后进行(不太确定什么时候),我在tableviewcontroller的tableview加载后(viewdidload中有时不起作用)再设置就生效了)
我们应该在视图的出现之后在进行设置tableView的位置,这样才有效
- (void) viewDidAppear:(BOOL)animated{
[super viewDidAppear:animated];
self.tableView.frame=CGRectMake(0, 38, 375, 1000);