Search code examples
iosobjective-cuitableviewaddsubview

Add subview to a custom class


I have a UITextField that I want to create a custom class on. So I created a file with a subclass of UITextField. Next, in the custom class, I want to implement a tableView. Kind of like a auto-complete textField.

I started creating it, and added the tableView like this:

[self addSubview:self.tableView];

When I run the app, the tableView is in the textField, so I can only see part of the tableView. How can I add it as a subview so I can see the full tableView?


Solution

  • This is what you are looking for https://github.com/gaurvw/MPGTextField

    This uitextfield subclass does what you want - it's builed for 'search' feature. If you still want to use your own, add tableview not to uitextfield itself, but like

    [[self superview] addSubview:tableViewController.tableView];
    

    EDIT:

    you can set frame as:

     CGRect frameForPresentation = [self frame];
     frameForPresentation.origin.y += self.frame.size.height;
     frameForPresentation.size.height = 200;
     [tableViewController.tableView setFrame:frameForPresentation];
    

    The way to add subview to uitextfield is to overload layoutSubviews method and init your tableview there:

    - (void)layoutSubviews 
    { 
    [super layoutSubviews]; 
    if (!self.tableview.superview) 
    { 
    [self setupView]; 
    } 
    }