UITableView positioning & styling

Discussion in 'iOS Programming' started by hatembr, Aug 18, 2010.

  1. hatembr macrumors newbie

    Aug 18, 2010

    my app uses a tab bar with 2 navigation based views in which I am adding a custom view (a title bar) between the nav bar and the table view .

    - (void)viewDidLoad {
        [super viewDidLoad];
    	// load title bar controller
    	TitleBarViewController *tbar = [[TitleBarViewController alloc] init];
    	[tbar setTitleImage:[UIImage imageNamed:@"v2-une.png"]];
    	[self setTitleBar:tbar];
    	[tbar release];
    	// show title bar
    	[self.navigationController.view addSubview:self.titleBar.view];

    When the application is launched with a default selected nav view, I use (void)viewDidAppear:(BOOL)animated to set the table view to a lower Y value so that the title bar is visible.

    Where Y = 20 : 20 is the height of my title bar.

    self.tableView.frame = CGRectMake(0, 20, 320, 347);
    The problem is that when I select a row and push a detail view and hide the bottom bar to display a toolbar, things are messed up.
    my title bar's height increases and becomes > 20 which I can't explain why.

    Now when I go back to the main table view, its Y is decreased by 20 and sticked to the nav bar. My title ben then appears above the first cell of the table view.

    If hit the 2 tab and then go back to the 1st tab, everything is re arranged like expected.

    here are some pics to illustrate all that :

    can anyone help me figure out why is this happening please ?
    may be I am putting my positioning code in the wrong event ?
  2. PhoneyDeveloper macrumors 68040


    Sep 2, 2008
    Are you using a UITableViewController?

    I recommend that you not add your title bar to the navbar. Instead have a container view that holds the title bar and the table view. You need to use a UIViewController subclass instead of UITableViewController in this case. The container view will be the view controller's view property. You'll have more control in this way.
  3. hatembr thread starter macrumors newbie

    Aug 18, 2010
    thank you for answering PhoneyDeveloper.

    yes I use a UITableViewController. Everything is designed in IB.

    can your suggestion be done in IB or do I have to do it programmatically ?

Share This Page