Поместите UIButton внутри UITableView - PullRequest
0 голосов
/ 28 апреля 2011

Я пытаюсь поместить UIButton внутрь UITableViewCell.

В UITableView также есть ячейки, содержащие UILabels, а в ячейках есть градиентный фон. Проблема, которую я вижу, заключается в том, что моя UIButton - это просто черная ячейка с заливкой без отображения текста, и изменение свойств цвета и цвета фона, похоже, ничего не делает.

Вот код, который я использую для создания кнопки:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSLog(@"InAppViewController, doing this - width= %f", self.wdth);
    static NSString *ProductTableIdentifier = @"ProductTableIdentifier";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ProductTableIdentifier];
    if (cell == nil)
    {
        if (self.wdth >= 700) {
            CGRect cellFrame = CGRectMake(0, 0, (self.wdth - 100), 40);
            cell = [[[UITableViewCell alloc] initWithFrame:cellFrame reuseIdentifier: ProductTableIdentifier] autorelease];

            // Set up some labels...

            CGRect seenValueRect = CGRectMake(self.wdth-320, 0, 100, 40);
            UIButton *seenValue = [UIButton buttonWithType:UIButtonTypeRoundedRect];
            [seenValue setBackgroundColor:[UIColor greenColor]];
            seenValue.tag = kSeenValueTag;
            seenValue.frame = seenValueRect;
            [seenValue setTitle:@"I'm a clone" forState:UIControlStateNormal];

            [cell.contentView addSubview:seenValue];

            [seenValue release];

            // Continue setting up cell...

Ссылка на вставку содержит код для всей функции cellForRowAtIndexPath() (для рассматриваемого UITableView).

http://pastebin.com/bpEyfruE

Ответы [ 2 ]

2 голосов
/ 28 апреля 2011

Возможно, проблема в том, что вы выпускаете инициализированный UIButton с удобным инициализатором [UIButton buttonWithType:(UIButtonType)]. Попробуйте удалить [button release]

0 голосов
/ 28 апреля 2011

Не может даже быть, что вам нужно сделать [cell addSubview:seenValue]; вместо [cell.contentView addSubview:seenValue];

Вы могли бы также попытаться сделать CGRectMake(110, 11, 185, 30) вместо CGRectMake(self.wdth-320, 0, 100, 40): я использую его, и он работает хорошо, но я не знаю, если вам это нужно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...