Не мог обновить UITableView

Вот что я понимаю из вашего вопроса: вы хотите переместить свой «ползунок» по ссылке, которая активна или находится в данный момент. Если это то, что вы хотите, у меня есть решение для вас.

Поскольку вы не указали свои свойства CSS для остальной части меню, я использую свои собственные свойства CSS для достижения этой цели.

Вместо перемещения «ползунка» я использую свойство padding-bottom для перемещения ползунка. Когда вы запускаете это в своем браузере, он имитирует, как будто он переместил «слайдер»

.menu li a.active,
.menu li a:hover {
    background-color: #E74C3C;
    padding-bottom: 20px;
    position: relative;
    z-index: 1;

}

Вот полное решение в фрагменте кода ниже. Дайте мне знать, если это не то, что вы хотели, и я обновлю свой ответ.

.menu {
  flex-direction: row;
  padding-left: 0;
  margin-bottom: 0;
  list-style: none;
  display: flex;
}

.menu li:not(.slider) {
  box-sizing: border-box;
  background: #2C3E50;
  width: 100%;
}

.menu li a {
  color: white;
  text-decoration: none;
  display: block;
  padding: 1rem;
}

.menu li a.active,
.menu li a:hover {
  background-color: #E74C3C;
  padding-bottom: 20px;
  position: relative;
  z-index: 1;
}

.menu .slider {
  height: 5px;
  width: calc(100% - 1rem);
  position: fixed;
  margin-top: 50px;
  background: #D6F1FF;
}
<ul class="menu">
  <li>
    <a href="/Home/Index">Home</a>
  </li>
  <li>
    <a href="/Home/Contact">Contact</a>
  </li>
  <li>
    <a class="active" href="/Home/About">About</a>
  </li>
  <li>
    <a href="/Account/Register">Register</a>
  </li>
  <li>
    <a href="/Account/Login">Log in</a>
  </li>
  <li class="slider" id="menu_slider"></li>
</ul>

6
задан Neo 3 April 2009 в 10:43
поделиться

2 ответа

эй действительно ли Вы уверены, что обновляете дисплей табличного представления / перезагружающий tableview на основном потоке? я столкнулся с той же проблемой, данные были там, но до пользовательских прокруток, не был обновлен tableview

после поиска с помощью Google я узнал Вас, должен назвать reloadData метод на основном потоке ui

пример кода ниже:

- (void) getDataOnNewThread
{
    // code here to populate your data source
    // call refreshTableViewOnMainThread like below:
    [self performSelectorOnMainThread:@selector(refreshTableView) withObject:nil waitUntilDone:NO];
}

- (void) refreshTableView
{
    [tableView reloadData];
}
12
ответ дан 8 December 2019 в 18:41
поделиться

Удостоверьтесь, что у Вас есть правильные значения, возвращаемые из numberOfRowsForSection для начинающих.

Также удостоверьтесь, что Ваш cellForRowAtIndexPath метод использует эти данные для получения содержания ячейки.

Ваш reloadData метод нужно назвать на основном потоке, не на любом другом потоке.

Сможет помочь Вам лучше, если можно отправить соответствующие нормы.

1
ответ дан 8 December 2019 в 18:41
поделиться