Почему мой класс CustomCell не отображается должным образом? - PullRequest
0 голосов
/ 28 мая 2011

Привет всем, я пытаюсь создать приложение в стиле бизнес-поиска и надеялся создать пользовательскую ячейку для отображения некоторой информации для пользователя.У меня есть ячейка для отображения всей информации, которую я пытаюсь дать, но формат отключен.Вот код, который я использую для создания ячейки.

// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    static NSString *CellIdentifier = @"CustomCell";

    CustomCell *cell = (CustomCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    if (cell == nil) 
    {
        NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"CustomCellView" owner:self options:nil];

#ifdef __IPHONE_2_1
        cell = (CustomCell *)[nib objectAtIndex:0];
#else
        cell = (CustomCell *)[nib objectAtIndex:1];
#endif
    }

    // Configure the cell.
    NSDictionary *dict = [rows objectAtIndex: indexPath.row];

    cell.bizNameLabel.text = [dict objectForKey:@"name"];
    cell.addressLabel.text = [dict objectForKey:@"address"];

    NSMutableString *detailed = [NSMutableString string];
    [detailed appendString:[dict objectForKey:@"distance"]];
    [detailed appendString:@"mi"];
    cell.mileageLabel.text = detailed;

    // determine the rating for the business
    NSString *icontype = [dict objectForKey:@"rating"];
    NSInteger rating = [icontype intValue];
    UIImage *image;
    // variable to change the color of the cell's background
    UIView *bg = [[UIView alloc] initWithFrame:cell.frame];

    // switch statement to determine the rating image to be displayed
    switch (rating) {
        case 1:
        {
            image = [UIImage imageNamed:@"1.png"];
            bg.backgroundColor = [UIColor yellowColor]; 
            break;
        }
        case 3:
        {
            image = [UIImage imageNamed:@"3.png"];
            bg.backgroundColor = [UIColor orangeColor]; 
            break;
        }
        case 5:
        {
            image = [UIImage imageNamed:@"5.png"];
            //bg.backgroundColor = [UIColor redColor]; 
            cell.backgroundColor = [UIColor redColor];
            break;
        }
        default:
            break;
    }

    [cell.ratingImage setImage:image];
    cell.backgroundView = bg;
    [bg release];


#ifdef __IPHONE_3_0
    cell.accessoryType =  UITableViewCellAccessoryDisclosureIndicator;
#endif

    return cell;
}

Затем я создал макет в IB, чтобы он выглядел следующим образом ..

(Первые 2 проблемы были решены, яиспользовал неправильную переменную изображения для отображения изображения)

И когда выбрано, вы можете сказать, что вещи не в порядке

! [введите описание изображения здесь] [3]

В IB у меня размеры ячейки равны 320 на 80, а на вкладке «Отступ» я изменил класс на CustomClass.Я уверен, что упускаю из виду что-то тривиальное, но если бы кто-то мог бросить мне кость, я был бы благодарен.Я исправил проблему с изображением, которое не отображается там, где я хотел, но у меня все еще остаются проблемы с тем, что цвет фона не меняется, размер шрифта отображается по-другому, и когда ячейка выбрана, она перекрывает разделитель ячеек.,

Примечание: попытался включить снимки экрана, но, поскольку я новичок, ТАК не позволил мне.Я предоставил ссылку, где я поместил изображение выбранной ячейки, которая перекрывает разделитель ниже.

http://s1216.photobucket.com/albums/dd361/cabearsfan/?action=view&current=screenshot2.png

Ответы [ 2 ]

0 голосов
/ 28 мая 2011

Я бы сказал, что есть несоответствие между рамкой просмотра изображения и размером изображения, которое вы ему даете.

После вызова setImage добавьте этот код, чтобы узнать, что происходит:

NSLog(@" imageView frame %f,%f, %f, %f",imageView.frame.origin.x,imageView.frame.origin.y,
    imageView.frame.size.width,imageView.frame.size.height);
NSLog(@" image  size %f x %f", image.size.width, image.size.height);
0 голосов
/ 28 мая 2011

Похоже, вы не используете ссылку на перо UIImageView, но используете свойство imageView по умолчанию для ячейки.

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