2012-04-30 5 views
0

Я пытаюсь добавить UIButton к Tableview, однако, когда я делаю следующее:добавление UIButton к Tableview headerView

UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frameWidth, 200)]; 

UIButton *addSource = [UIButton buttonWithType:UIButtonTypeCustom]; 
[addSource addTarget:self action:@selector(addBoard:) forControlEvents:UIControlEventTouchUpInside]; 
[addSource setImage:[UIImage imageNamed:@"addsource.png"] forState:UIControlStateNormal]; 
[addSource setBackgroundColor:[UIColor grayColor]]; 
[headerView addSubview:addSource]; 

self.tableView_.tableHeaderView = headerView; 

Я не видел UIButton там. Когда я пытаюсь использовать UILabel, он есть. Почему это?

ответ

1

Ваша кнопка addSource не имеет фрейма.

+0

что вы имеете в виду мой ADDSOURCE не имеет ни одного кадра? – xonegirlz

+0

вы забыли установить кадр. try '[addSource setFrame: CGRectMake (0,0,20,20)]' –

1

Используйте этот код ...

-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section 
{ 

    UIButton *headername = [[UIButton alloc]initWithFrame:CGRectMake(20, 5, 270, 34)]; 
    headername.backgroundColor = [UIColor greenColor]; 

    UIView *headerView = [[UIView alloc] init]; 
    UIImageView *tempimage = [[UIImageView alloc]initWithFrame:CGRectMake(10, 5, 300,34)]; 
    tempimage.image = [UIImage imageNamed:@"GrayButton.png"]; 
    [headerView addSubview:tempimage]; 
    [headerView addSubview:headername]; 
    return headerView; 

} 
+0

@xxonegirlz: Пожалуйста, примите ответ, если это решит вашу проблему не для меня, а для другого (новичок и тот, у кого может быть такая же проблема) , Таким образом, они могут выбрать решение, которое будет полезно для переполнения стека, а также для других людей. – Nit

0

Пожалуйста, попробуйте это один

UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 100, 45)];

заменить его

UIButton *addSource = [UIButton buttonWithType:UIButtonTypeCustom];

это кнопка показать на 0,0 ширина точки 100 и высота 45 в заголовке Посмотреть. это поможет вам

+0

это тоже не помогло – xonegirlz

+0

и как насчет ответа @ Нита? –

0

Установить рамки для ur button.by defalult frame of ur button wil be CGRectZero означает.width n height как wil be zero..so установите его рамку для рисования в относительном положении.

0
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section 
{   
    UIView *headerView = [[[UIView alloc] initWithFrame:CGRectMake(0,0, 320, 44)] autorelease]; 

    UIButton *addSource = [UIButton buttonWithType:UIButtonTypeRoundedRect];  
    addSource.frame = CGRectMake(80.0, 0, 160.0, 40.0); 
    [addSource setTitle:@"rep" forState:UIControlStateNormal]; 
    [addSource addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchDown];   

    [headerView addSubview:addSource]; 
    return headerView;  
} 

Также не забудьте реализовать.

tableView:heightForHeaderInSection: 
+0

Эти рамки предназначены только для примера. Настройте их по своему собственному требованию – ichanduu

1
-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section 
{ 
    UIButton *name = [[UIButton alloc]initWithFrame:CGRectMake(30, 10, 120, 45)]; 
    name.backgroundColor = [UIColor greenColor]; 
    UIView *header = [[UIView alloc] init]; 
    UIImageView *image = [[UIImageView alloc]initWithFrame:CGRectMake(30, 10, 200,45)]; 
    image.image = [UIImage imageNamed:@"Button.png"]; 
    [header addSubview:image]; 
    [header addSubview:name]; 
    return header; 
} 
+0

Повысьте репутацию по стрелке вверх –

+1

Что вы хотите сказать нам с вашим комментарием ??? Если вы хотите оживить людей, чтобы проголосовать за ваш ответ, укажите ответы, которые отвечают на вопрос. ОП попросил «почему», вы ответили блоком кода (без каких-либо объяснений). Я никогда не буду выдвигать необъяснимый чистый код (мое личное мнение). – stema

+0

ОК не сердитесь .. если есть необходимость в объяснении, тогда я готов дать объяснение –

Смежные вопросы