2011-12-14 24 views
6

Lúc đầu, tôi muốn nói rằng tôi mới trong development.I ứng dụng iPhone muốn thực hiện một tabbaritem khi nào tôi sẽ chọn một mục tương ứng của thanh tabbar sau đó nó nên trông như thếLàm thế nào tôi có thể làm cho mục tabbar được nâng lên trung tâm?

enter image description here

Cảm ơn nhiều Trước.

+1

uitabbar không cung cấp hỗ trợ cho những gì bạn đang cố gắng đạt được. Điều này chỉ có thể được thực hiện bằng cách sử dụng một tập hợp các chế độ xem tùy chỉnh. – Vlad

+0

u có thể gửi cho tôi cách tôi có thể tùy chỉnh chế độ xem đó không? – Emon

+0

kiểm tra điều này http://idevrecipes.com/2011/01/04/how-does-the-twitter-iphone-app-implement-a-custom-tab-bar/ – Vlad

Trả lời

0

Đối với điều này, bạn cần tạo thanh tab tùy chỉnh theo phân loại phụ UITabBarController.

TabBarController.h file:

@interface TabBarController : UITabBarController<UITabBarControllerDelegate> 
{ 
    UITabBarController *tabController; 

    UIImageView *img1; 
    UIImageView *img2; 
    UIImageView *img3; 
    UIImageView *img4; 
} 

tập tin .m

- (void)viewDidLoad 
{  
    [self loadTabView]; 
    //[self viewWillAppear:YES]; 
    [super viewDidLoad];   
} 

- (void) loadTabView 
{ 
    tabController = [[UITabBarController alloc] init]; 
    tabController.delegate = self; 
    tabController.tabBar.backgroundColor = [UIColor clearColor]; 

    //set offset for tabbar items images. 
    int topOffset = 6; 
    int bottomOffset = 6; 
    UIEdgeInsets imageInset = UIEdgeInsetsMake(topOffset, 0, -bottomOffset, 0); 

    [self.view addSubview:tabController.view]; 
} 

// reset the background image in custom tabbar. 
- (void) setTabBarBackground { 

    UIImageView *img = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"btnbg.png"]]; 
    img.frame = CGRectOffset(img.frame, 0, 1); 
    img.frame = CGRectMake(img.frame.origin.x, img.frame.origin.y-1, img.frame.size.width, img.frame.size.height); 
    [tabController.tabBar insertSubview:img atIndex:0]; 
    [img release]; 

} 

// reset the background image in custom tabbar. 
- (void) resetTabBar : (NSString *) tabid 
{ 
    [img1 removeFromSuperview]; 

    NSLog(@"tab id - %@",tabid); 
    switch ([tabid intValue]) { 
     case 0: 
      img1 = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"tab-1.jpg"]]; 
      break; 
     case 1: 
      img1 = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"tab-2.jpg"]]; 
      break; 
     case 2: 
      img1 = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"tab-3.jpg"]]; 
      break; 
     case 3: 
      img1 = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"tab-4.jpg"]]; 
      break; 
     case 4: 
      img1 = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"tab-5.jpg"]]; 
      break; 
     default: 
      break; 
    } 

    img1.frame = CGRectOffset(img1.frame, 0, 1); 
    [tabController.tabBar insertSubview:img1 atIndex:0]; 
    [tabController.tabBar bringSubviewToFront:img1]; 
    [img1 release]; 

} 

// here push View controllers 
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController { 
} 

Hy vọng nó sẽ mang đến cho bạn ý tưởng ..

+0

Tôi đã giải quyết vấn đề này theo cách khác. Bất cứ điều gì nhờ sự giúp đỡ của bạn – Emon

+0

@Emon Bạn đã giải quyết nó như thế nào, bạn có thể chia sẻ không? –

2

Sử dụng thông tin trong số này Article

1

Điều này đã được đề cập trong một vài hướng dẫn. Làm thế nào hầu hết các ứng dụng này đạt được hiệu quả là họ đặt một UIButton tùy chỉnh theo phong cách tương tự như Tab Bar trên đầu trang của thanh tab ở trung tâm.

iDev Recipes có hướng dẫn tuyệt vời với mã ví dụ

0

Tôi khuyên không nên làm điều này. Người dùng iOS được sử dụng cho chức năng thanh tab quen thuộc. Điểm nổi bật là đủ để cho họ biết họ đang ở trên tab nào.

Ý tưởng thiết kế của bạn rất hấp dẫn nhưng có tính phí. Khu vực phía trên thanh bên cạnh mục thanh bị rớt bị lãng phí hoặc phải giảm kích thước của các biểu tượng khác. Điều này sẽ khiến việc sử dụng trở nên khó khăn hơn, không dễ dàng hơn.

Đây là một mẹo hay: mất 2 giờ trong cuộc sống bận rộn của bạn và đọc Apple Human Interface Guidelines cho iOS từ trang bìa đến trang bìa. Đọc hấp dẫn của nó và sẽ cung cấp cho bạn hướng dẫn tốt cho các câu hỏi thiết kế như thế này.

+0

Đó là một cung cấp và lấy.Tôi tin rằng hầu hết người dùng ứng dụng sẽ bị ấn tượng với thiết kế tốt hơn và nổi bật hơn là một cách tiếp cận thiết kế thực tế hơn. –

+0

Có, điều đó cũng có thể. Ngoài ra, thói quen người dùng đang thay đổi liên tục và Apple chỉ có thể kiểm soát quá nhiều. – Mundi

+0

Điều này không thêm bất kỳ giá trị nào cho câu hỏi. Nếu nó là của một khách hàng yêu cầu nó, chúng tôi sẽ ahve để phát triển nó. – Tony

3

biết nó đã được trả lời, nhưng muốn cung cấp một cách tiếp cận khác .

Phân lớp UITabBarController là một ý tưởng tồi, theo các tài liệu. Tôi cũng đã không có kết thúc của rắc rối khi tôi thực sự cố gắng sử dụng một UIImagePickerController là một trong những bộ điều khiển xem đằng sau tabbar subclassed.

Tôi đã thực hiện một cách tiếp cận đơn giản hơn nhiều chỉ che phủ một uibutton trên mục tabbar. Dự án ví dụ có thể được tìm thấy tại đây:

https://github.com/group6/RaisedCenterButton

Đây chỉ là một ví dụ. Bạn vẫn sẽ cần phải làm công việc để kết hợp nó vào một ứng dụng.

Các vấn đề liên quan