Как прокрутить UITableView к tableFooterView

На основе Вашего требования, чтобы Вы хотели поместить границу вокруг произвольного блока ячеек MxN, действительно нет никакого более легкого способа сделать его, не используя JavaScript. Если Ваши ячейки починены с Вами, может использовать плавания, но это проблематично по другим причинам. то, что Вы делаете, может быть утомительным, но это прекрасно.

хорошо, если Вы интересуетесь решением JavaScript, с помощью jQuery (мой предпочтительный подход), Вы заканчиваете с этой довольно страшной частью кода:

<html>
<head>

<style type="text/css">
td.top { border-top: thin solid black; }
td.bottom { border-bottom: thin solid black; }
td.left { border-left: thin solid black; }
td.right { border-right: thin solid black; }
</style>
<script type="text/javascript" src="jquery-1.3.1.js"></script>
<script type="text/javascript">
$(function() {
  box(2, 1, 2, 2);
});

function box(row, col, height, width) {
  if (typeof height == 'undefined') {
    height = 1;
  }
  if (typeof width == 'undefined') {
    width = 1;
  }
  $("table").each(function() {
    $("tr:nth-child(" + row + ")", this).children().slice(col - 1, col + width - 1).addClass("top");
    $("tr:nth-child(" + (row + height - 1) + ")", this).children().slice(col - 1, col + width - 1).addClass("bottom");
    $("tr", this).slice(row - 1, row + height - 1).each(function() {
      $(":nth-child(" + col + ")", this).addClass("left");
      $(":nth-child(" + (col + width - 1) + ")", this).addClass("right");
    });
  });
}
</script>
</head>
<body>

<table cellspacing="0">
  <tr>
    <td>no border</td>
    <td>no border here either</td>
  </tr>
  <tr>
    <td>one</td>
    <td>two</td>
  </tr>
  <tr>
    <td>three</td>
    <td>four</td>
  </tr>
  <tr>
    <td colspan="2">once again no borders</td>
  </tr>
</tfoot>
</table>
</html>

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

23
задан Kevin 31 August 2009 в 03:30
поделиться

5 ответов

Я не пробовал, но что происходит, когда вы прокручиваете до последней строки + 1?

Еще одна идея - всегда добавлять фиктивную запись в конце и делать ее другой вид, поэтому он выглядит как нижний колонтитул. Тогда вы всегда можете перейти к нему.

-4
ответ дан 29 November 2019 в 00:41
поделиться

Может быть что-то вроде:

[tableView setContentOffset:CGPointMake(0, tableView.contentSize.height) animated:YES];
4
ответ дан 29 November 2019 в 00:41
поделиться

Поскольку UITableView является подклассом UIScrollView, вы можете прокручивать туда, куда хотите, используя метод UIScrollView

- (void)scrollRectToVisible:(CGRect)rect animated:(BOOL)animated

Просто установите прямоугольник так, чтобы, когда он был виден, был виден нижний колонтитул, и у вас было свое решение (вы можете использовать прямоугольник нижнего колонтитула или что-то еще, при условии, что вы все время получаете правильное поведение ).

3
ответ дан 29 November 2019 в 00:41
поделиться

В целом, я думаю, что лучше разделить каждое объявление. Это, как правило, облегчает изменение вокруг позже.

особенно когда множество переменных, как правило, предполагают, что они должны быть объединены в другой объект.

так что я склонен делать...

valueType  x = IntialValue;
valueType  y = IntialValue;
valueType  z = IntialValue;

и т.д.

-121--4648573-

В качестве генератора:

def cypher(message, key, seed):
    for element in message:
        seed = element ^ seed ^ key
        yield seed

list(cypher(message, key, initial_seed))
-121--2337698-

Самый простой способ сделать это - использовать UITableViewScrollPosityTop на ПОСЛЕДНЕЙ СТРОКЕ в ПОСЛЕДНЕМ РАЗДЕЛЕ. Это очень хорошо работает для меня...

[tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:LAST_ROW inSection:LAST_SECTION] atScrollPosition:UITableViewScrollPositionTop animated:YES];

Убедитесь, что ваш вид нижнего колонтитула хорошо расположен внизу, и он должен быть хорошо анимирован внутри вида...

Надеюсь, это поможет...

2
ответ дан 29 November 2019 в 00:41
поделиться

Отличная идея, искала это сам :) Вот образец кода, который бы сделал трюк:

[tableView reloadData];
NSIndexPath *index = [NSIndexPath indexPathForRow:0 inSection:1];
[tableView scrollToRowAtIndexPath:index
    atScrollPosition:UITableViewScrollPositionBottom animated:YES];

У вас должен быть хотя бы одна ячейка в вашей табличном нижнем колонтитуре, проблема в том, что она будет видимой. Не было времени, чтобы проверить, но я догадаю, что вы можете сделать это действительно маленьким?

Дополнительно вы должны реализовать правильные вещи внутри NumberofSectionsIntableView (по крайней мере, один для таблицы и один для нижнего колонтитула), NumbersofRowsIndection (по крайней мере, один для нижнего колонтитула, ваш последний раздел), ViewForheaderInsection (NIL, кроме вашей клетки), HOLEFFOREDERHENTERINESECTION (может быть, CellForeatindexpath (добавьте особый случай для вашей клетки в нижнем колонтитуле) ...

этого должно быть достаточно.

0
ответ дан 29 November 2019 в 00:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: