sqlite форматирование с меткой iphone tableview - PullRequest
0 голосов
/ 21 апреля 2011

Я отображаю данные из базы данных в табличном представлении.В табличном представлении ячейка содержит метку динамической высоты в соответствии со значением базы данных. Предположим, я хочу отобразить описание любого города из базы данных в табличном представлении с меткой в ​​ячейке. Я вручную добавил описание в базу данных. Моя проблема в том, что некоторая метка времени не отображаетсяПолное описание, потому что ширина метки в 320 пикселей для телефона и в базе данных sqlite превышает 320. В этом случае все форматирование было нарушено в iphone. Я должен изменить интервал или табуляцию в базе данных, а затем протестировать в iphone. У меня многозаписей, и это очень много времени. И если я даю много пробелов в базе данных, то после завершения описания метка будет отображать пустое пространство.Есть ли способ решить эту проблему форматирования.

Это мой код

- (UITableViewCell *)tableView:(UITableView *)atableView 
         cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    //label to hold description of city
    UILabel *label = nil;

    //cell identifier for each section oftable
    static NSString *CellIdentifier = @"Cell"; 

    UITableViewCell *cell = [atableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc]initWithFrame:CGRectZero reuseIdentifier:@"Cell"]autorelease];

        //label initialization
        label = [[UILabel alloc]initWithFrame:CGRectZero];
        [label setLineBreakMode:UILineBreakModeWordWrap];
        [label setMinimumFontSize:kFontSize];

        [label setNumberOfLines:0];
        [label setFont:[UIFont fontWithName:@"Futura" size:13.0]];
        label.autoresizingMask = UIViewAutoresizingFlexibleWidth;
        [label setTag:1];

        //adding label to cell's content view
        [[cell contentView]addSubview:label];

        [label release];
    }

    cell.selectionStyle = UITableViewCellSelectionStyleNone;

    // text to display in label in cell
    NSString *text = city.Description;

    CGSize constraint = CGSizeMake(kCellContentWidth - (kCellContentMargin * 2), 20000.0f);

    CGSize size = [text sizeWithFont:[UIFont systemFontOfSize:kFontSize] 
                   constrainedToSize:constraint lineBreakMode:UILineBreakModeWordWrap];

    if (!label)
        label = (UILabel*)[cell viewWithTag:1];

    [label setText:text];
    [label setFrame:CGRectMake(kCellContentMargin, 
                               kCellContentMargin, 
                               kCellContentWidth - (kCellContentMargin *4),
                               MAX(size.height, 44.0f))];
    return cell;

}

//Dynamic  size label according to description 

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {


    NSString *text = city.Description;
    CGSize constraint = CGSizeMake(kCellContentWidth - (kCellContentMargin *2), 20000.0f);
    CGSize size = [text sizeWithFont:[UIFont systemFontOfSize:kFontSize] constrainedToSize:constraint lineBreakMode:UILineBreakModeWordWrap];
    CGFloat height = MAX(size.height , 44.0f);
    return height + (kCellContentMargin *2); //returning height of label with font size and constaraint size

}

Мой класс модели для города

    @interface City :  NSManagedObject  
{
}

@property (nonatomic, retain) NSString * Description;
@property (nonatomic, retain) NSString * Name;
@property (nonatomic, retain) NSData * Image;
@property (nonatomic, retain) NSSet* cityToRestaurant;
@property (nonatomic, retain) NSSet* cityToHotel;
@property (nonatomic, retain) NSSet* cityToPlaces;

@end


@interface City (CoreDataGeneratedAccessors)
- (void)addCityToRestaurantObject:(NSManagedObject *)value;
- (void)removeCityToRestaurantObject:(NSManagedObject *)value;
- (void)addCityToRestaurant:(NSSet *)value;
- (void)removeCityToRestaurant:(NSSet *)value;

- (void)addCityToHotelObject:(NSManagedObject *)value;
- (void)removeCityToHotelObject:(NSManagedObject *)value;
- (void)addCityToHotel:(NSSet *)value;
- (void)removeCityToHotel:(NSSet *)value;

- (void)addCityToPlacesObject:(NSManagedObject *)value;
- (void)removeCityToPlacesObject:(NSManagedObject *)value;
- (void)addCityToPlaces:(NSSet *)value;
- (void)removeCityToPlaces:(NSSet *)value;

И файл реализации

    #import "City.h"


@implementation City 

@dynamic Description;
@dynamic Name;
@dynamic Image;
@dynamic cityToRestaurant;
@dynamic cityToHotel;
@dynamic cityToPlaces;

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