UIColor groupTableViewBackgroundColor является прозрачным - PullRequest
1 голос
/ 28 декабря 2010

У меня есть сгруппированный стиль UITableView в моем стеке навигации, и когда я щелкаю ячейку, я помещаю UIDatePicker в стек. Проблема в том, что я хочу, чтобы это пользовательское представление имело тот же цвет фона, что и мое табличное представление.

Я попытался установить цвет фона моего пользовательского вида, например:

datePicker.backgroundColor = [UIColor groupTableViewBackgroundColor];

Но это получается прозрачно. Я также попытался изменить базовый объект CGColor, чтобы альфа равнялся 1,0, в результате чего фоновый цвет становился черным.

Следующее работает как положено:

datePicker.backgroundColor = [UIColor lightGrayColor];

Но, конечно, этот цвет не совсем соответствует цвету фона сгруппированной таблицы.

Я все об этом говорю неправильно? Я нашел похожий пост об этом здесь , но никакого полезного ответа.

1 Ответ

1 голос
/ 28 декабря 2010

Что вы имеете в виду, что вы «помещаете UIDatePicker в стек»? Почему вы не пытаетесь анимировать UIDatePicker?

при загрузке представления создайте средство выбора и отключите экран, например

    [picker setFrame:CGRectMake(0,960,320,216)];

затем вместо того, чтобы "толкать" сборщик, анимируйте его как:

    [UIView beginAnimations:nil context:NULL];
    [picker setFrame:CGRectMake(0,200,320,216)];
    [UIView commitAnimations];

А когда вы хотите отменить сборщик, просто скройте его как:

    [UIView beginAnimations:nil context:NULL];
    [picker setFrame:CGRectMake(0,960,320,216)];
    [UIView commitAnimations];

Если вам нужно, вы также можете добавить панель инструментов с кнопкой «Готово», чтобы закрыть окно выбора, отлично работает для меня.

Если содержимое сборщика будет отображаться на столе, то вы можете установить кадр таблицы в этой последовательности анимации. в первом случае сделайте таблицу наполовину меньше (например, 150 для моего примера будет работать идеально), затем в последовательности скрытия установите размер таблицы (415 для этого примера) А когда вы прячете средство выбора, звоните [tableView reloadData];, чтобы обновить таблицу.

...