在學了這么多的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);
新聞熱點
疑難解答