2014-12-17 2 views
-4

, когда в таблице больше записей, чем показано на экране, и пользователь прокручивает нижнюю часть последних записей в таблице, последние две строки недоступны (только в iOS7 , в iOS8 все в порядке). Когда пользователь берет палец с экрана, таблица поднимается, а последние две строки скрыты.Прокрутите до последних двух строк таблицы

Это один из метода, используемого для Tableview, но я не знаю, если это взялось здесь:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
static NSString * cellIdentifier = @"Cell"; 

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier forIndexPath:indexPath]; 

// Configure the cell... 
if (cell == nil) { 
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier]; 
} 

if (selectionCategMsg == 0) 
{ 
    if ([self.tableauMsgReceived count] < 1) { 
     cell.textLabel.text = NSLocalizedString(@"noMessagesYet", nil); //@"No messages yet !"; 
    } 

    else 
    { 
     cell.textLabel.text = [NSString stringWithFormat:@"%@", [self.tableauMsgReceived objectAtIndex:indexPath.row]]; 
     cell.textLabel.lineBreakMode = NSLineBreakByWordWrapping; 
    } 
} 

else 
{ 
    if ([self.tableauMsgSent count] < 1) { 
     cell.textLabel.text = NSLocalizedString(@"noReplyYet", nil); 
    } 

    else 
    { 
     cell.textLabel.text = [NSString stringWithUTF8String:[NSString stringWithFormat:@"%@", [self.tableauMsgSent objectAtIndex:indexPath.row]].UTF8String]; 
     cell.textLabel.lineBreakMode = NSLineBreakByWordWrapping; 
    } 
} 

[cell setAccessoryType:UITableViewCellAccessoryNone]; 

return cell; 
} 

Может кто-то дать совет? Спасибо.

ЭТО РЕШЕНИЕ, ЧТО Я НАШЕЛ:

// -> SET TABLE FRAME 
CGFloat sideMargin = 0; 
CGFloat originX = sideMargin; 

CGFloat topBottomMargin = 100; 
CGFloat originY = topBottomMargin; 

// Width based on view size 
CGFloat sizeWidth = self.view.bounds.size.width); 

// Height based on view size 
CGFloat sizeHeight = (self.view.bounds.size.height - topBottomMargin); 

self.myTableView.frame = CGRectMake(originX, originY, sizeWidth, sizeHeight); 
// <- END SET tableView frame 
+2

ТаблицаView имеет неправильные границы и выходит за пределы экрана ... представление имеет неправильный фрейм. покажите код, где вы создаете таблицу и/или xib –

+0

, и удалите все, что несвязанный код –

ответ

0

UITableView имеет метод scrollToRowAtIndexPath:atScrollPosition:animated:. Этот метод позволяет прокручивать представление таблицы, чтобы отображался данный индекс. Это то, что вы ищете?

EDIT:

@ пост DAij-джан является хорошей теорией о том, что случилось. Если ваш вид таблицы отключается от экрана, он будет размещать последние пару ячеек внутри его вида, но это представление не будет видно. Вам нужно будет немного отладить, чтобы выяснить, что случилось. Вы можете попытаться установить borderWidth слоя таблицы на ненулевое значение, чтобы вы могли видеть границы вида таблицы.

В вашем viewDidLoad, добавьте следующий код:

myTableView.layer.borderWidth = 1; 
myTableView.layer.borderColor= [UIColor redColor].CGColor; 

Вы будете иметь (Где бы заменить «myTableView» с именем вашего табличного переменной экземпляра или свойства.) необходимо импортировать QuartzCore.h, чтобы перекодировать код:

#import <QuartzCore/QuartzCore.h> 
+0

Спасибо Duncan, но я уже пробовал и не работает. – Developer3000

+0

Отправьте свой код. Я использовал этот метод, и он отлично работает. –

+0

Я не знаю, какая часть кода отвечает за это ... – Developer3000

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