Различные цвета фона для вершины и нижней части UITableView

Я думаю лучшее, которое Вы собираетесь быть способными сделать, что-то вроде этого:

static void Main(string[] args)
{
    int i = 1;
    var thelist = CreateList(i);
}

public static List<T> CreateList<T>(T t)
{
    return new List<T>();
}
30
задан Aaron Brethorst 11 July 2009 в 20:37
поделиться

6 ответов

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

-1
ответ дан 27 November 2019 в 23:17
поделиться

You should look into using the tableHeaderView and tableFooterView properties of the UITableView.

-1
ответ дан 27 November 2019 в 23:17
поделиться

Предоставлено Эрикой Садун:

- (void) scrollViewDidScroll: (UIScrollView *) sv
{
    float percent =  sv.contentOffset.y / sv.contentSize.height;
    percent = 0.5 + (MAX(MIN(1.0f, percent), 0.0f) / 2.0f);

    sv.backgroundColor = [UIColor colorWithRed:percent * 0.20392
                                         green:percent * 0.19607
                                          blue:percent * 0.61176 alpha: 1.0f];
}

, а затем измененная версия, которую я использую:

- (void)scrollViewDidScroll:(UIScrollView *)sv
{
        UIColor *backgroundColor = nil;

        float percent = sv.contentOffset.y / sv.contentSize.height;
        percent = 0.5 + (MAX(MIN(1.0f, percent), 0.0f) / 2.0f);

        if (0.5f == percent)
        {
            backgroundColor = RGBCOLOR(233.0f, 235.0f, 237.0f);
        }
        else
        {
            CGFloat r = 233.0f * (1.0f - percent) + 255.0f * percent;
            CGFloat g = 235.0f * (1.0f - percent) + 255.0f * percent;
            CGFloat b = 237.0f * (1.0f - percent) + 255.0f * percent;
            backgroundColor = RGBCOLOR(r,g,b);
        }           
        sv.backgroundColor = backgroundColor;
}
8
ответ дан 27 November 2019 в 23:17
поделиться

Установите для tableFooterView представление с нулевой высотой и шириной, которое выводится за пределы своих границ. Самый простой способ - добавить к нему большое subview:

self.tableView.tableFooterView = [[[UIView alloc] initWithFrame:CGRectZero] autorelease];
UIView *bigFooterView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 1000)];
bigFooterView.backgroundColor = [UIColor whiteColor];
bigFooterView.opaque = YES;
[self.tableView.tableFooterView addSubview:bigFooterView];
[bigFooterView release];

отрегулируйте [UIColor whiteColor] и ширину вашего bigFooterView соответственно (если ваш tableView может быть горизонтальным, вы захотите, чтобы он был шире 320). Таким образом, вверху вы увидите любой фон вашего представления таблицы, а внизу все, что вы установили для фона этого представления.

12
ответ дан 27 November 2019 в 23:17
поделиться

Возможно, это не лучшая практика, но если вы действительно хотите сделать это, как Apple, есть частное свойство UITableView , называемое tableHeaderBackgroundColor . Серый цвет - # e2e7ed .

Вы можете поместить что-то вроде этого в метод -viewDidLoad UITableViewController :

UIColor *grayishColor = [UIColor colorWithRed:226/255.0
                                        green:231/255.0
                                         blue:237/255.0 alpha:1.0];
[self.tableView setValue:grayishColor forKey:@"tableHeaderBackgroundColor"];
3
ответ дан 27 November 2019 в 23:17
поделиться

Есть хорошие ответы на Светло-серый фон в "области отскока"...

Где я нашел эту кодовую монету (немного измененную), которая отлично работает:

CGRect frame = self.tableView.bounds;
frame.origin.y = -frame.size.height;
UIView* grayView = [[UIView alloc] initWithFrame:frame];
grayView.backgroundColor = [UIColor grayColor];
[self.tableView addSubview:grayView];
[grayView release];

Swift:

var frame = self.tableView.bounds
frame.origin.y = -frame.size.height
let grayView = UIView(frame: frame)
grayView.backgroundColor = .gray
self.tableView.addSubview(grayView)
34
ответ дан 27 November 2019 в 23:17
поделиться
Другие вопросы по тегам:

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