#iphone #xcode
#iPhone #xcode
Вопрос:
У меня есть вопрос о разработке iPhone:
Как я могу поместить изображение над сгруппированным UITableView, которое прокручивается вместе с представлением таблицы? (Изображение должно быть прикреплено к верхней части табличного представления, поэтому при прокрутке табличного представления изображение должно прокручиваться за пределы экрана вместе с табличным представлением. Изображение НЕ является вложенным представлением с фиксированной позицией, как в аналогичных публикациях)
Я попытался установить backgroundColor с помощью colorWithPatternImage и добавить EdgeInsets, чтобы сдвинуть представление таблицы вниз, но затем изображение отображается без прокрутки за представлением таблицы, А изображение отображается также за каждым разделом в представлении таблицы (прокрутка).
Единственное решение, которое я придумал, — позволить cellForRowAtIndexPath возвращать изображение для первого раздела в табличном представлении, хотя это похоже на взлом.
Есть ли правильный способ сделать это?
Комментарии:
1. Эта проблема решена. Но кто-нибудь может объяснить, почему TableView.backgroundColor = …colorWithPatternImage… отображает изображение в фиксированном положении за представлением таблицы, а затем повторяет изображение для каждого раздела в таблице? (Я даже думаю, что телефон и симулятор давали здесь очень разные визуальные эффекты)
2. Я полагаю, что инженеры Apple разработали его таким образом, чтобы сократить операции компоновки — прозрачность для прокрутки обходится дорого, поэтому они оптимизировали рисунок с вертикальными полосами, что позволяет сделать фоновые виды разделов непрозрачными (поскольку они выглядят точно так же, как фон за ними).
Ответ №1:
Самый простой способ поместить изображение в начало табличного представления — установить свойство табличного представления tableHeaderView
с экземпляром UIImageView
, содержащим изображение.
Комментарии:
1. Еще одна вещь: теперь представление таблицы начинается непосредственно под изображением заголовка. Как я могу заставить представление таблицы начинаться примерно на полпути вниз по изображению заголовка (чтобы градиент изображения заголовка продолжался по бокам табличного представления)?
Ответ №2:
Вы можете настроить свой - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
. Определите раздел 0 и добавьте изображение в это настраиваемое представление с заголовком вашего раздела.
ваша реализация выглядит так:
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
if(section == 0) {
// init your view
// Add Image in view
// Add Header for section manage frames
}
else {
// Add Header for section manage frames
}
}
Надеюсь, это помогло