UITableView positioning & styling

Discussion in 'iPhone/iPad Programming' started by hatembr, Aug 18, 2010.

  1. macrumors newbie

    Joined:
    Aug 18, 2010
    #1
    hi,

    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 .

    Code:
    - (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.

    Code:
    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 :
    [​IMG]


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

    PhoneyDeveloper

    Joined:
    Sep 2, 2008
    #2
    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. thread starter macrumors newbie

    Joined:
    Aug 18, 2010
    #3
    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