2013-09-28 4 views
3

Я использую представление изображения как вид фона ячейки таблицы. Когда я компилирую свой источник в xcode 4.x, он отлично работает. I. В iOS 6.x и 7.0 он работает нормально. Но когда я компилирую свой источник в xcode 5.0, изображение фонового изображения не появляется в iOS 7.iOS 7 UItableview вид сотового фона

Любая идея, почему она не работает? Существуют ли какие-либо ограничения на вид фона ячейки iitable 7 в iOS 7?

if (cell == nil) { 
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:accountProfileTypeCell]; 
    UIImageView *cellBgView =[[UIImageView alloc]init]; 
    [cellBgView setImage:[UIImage imageNamed:@"cellBgView.png"]]; 
    [cell setBackgroundView:cellBgView]; 
} 
+0

как вы устанавливаете фон? Покажите фактический код, который вы используете. –

+0

Я добавил код. Спасибо – Techie

+0

[UIImage imageImaged:] imageImaged - это не какой-либо метод в классе UIImage. Его - imageNamed. отредактируйте его в своем коде – iProgrammer

ответ

7

попробуйте добавить: cell.backgroundColor = [UIColor clearColor];

+0

да это сработало спасибо – Techie

1

Попробуйте это. Это для меня работа

cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:accountProfileTypeCell]; 
UIView *cellBgView =[[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, [cell frame].size.width, [cell frame].size.height)]; 
[cellBgView setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"cellBgView.png"]]]; 
[cell setBackgroundView:cellBgView]; 
+0

'VActivityStreamBack'? –

+0

VActivityStreamBack ?? Могу я узнать, что это? Спасибо – Techie

+0

Я скопировал этот код из одного из моих приложений, где он был «VActivityStreamBack», и, к сожалению, я пропустил это для замены. Вот и все. –

0

Единственное, чего не хватает, это установить рамку на cellBgView. Настройка изображения на него не изменит размер изображения. Однако, если вы инициализируете imageView с помощью initWithImage:, он будет изменять размер изображения в соответствии с изображением.

+0

Я думаю, нам не нужно устанавливать рамки для фоновых видов. Спасибо – Techie

+0

Да, если вы используете backgroundView, инициализированный ячейкой, а не тот, который вы инициализировали. –

0

Вам просто нужно применить автоизоляцию в вашем изображении.

Если ваше изображение будет применено ко всему экрану. Назначьте все поля.

Checkout изображение

2

Вы должны установить фон в willDisplayCell. Ниже код такой же, как у вас только то, что переместить его в методе willDisplay

-(void) tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath{ 

    if(cell.backgroundView==nil){ 
     UIImageView *cellBgView =[[UIImageView alloc]init]; 
     [cellBgView setImage:[UIImage imageNamed:@"cellBgView.png"]]; 
     [cell setBackgroundView:cellBgView]; 
    } 
} 
+1

Не требуется, чтобы мы это делали только в режиме отображения ячейки, мы можем сделать это непосредственно в методе cellforrow, ошибка, которую я сделал, не устанавливала цвет ячейки таблицы, чтобы очистить цвет – Techie

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