2013-11-13 2 views
1

Я работаю над приложением, которое будет полагаться на один главный контроллер представления с рядом кнопок внизу, чтобы отображать другие представления с информацией. С одной из этих кнопок я хочу представить табличное представление, в котором представлен список названий песен. Это приложение воспроизводит звуковые файлы, и я хочу, чтобы пользователь мог нажать кнопку, а затем выбрать песню, которая будет играть по умолчанию. Я хочу представить эту таблицу с анимацией uiview, и я хочу, чтобы она была полупрозрачной и заполняла часть экрана. Я попытался создать UITableViewController, а затем представить его от основного контроллера представления следующим образом:Представление полупрозрачного UITableView от UIViewController

UITableViewController *tableView = [[UITableViewController alloc]init]; 
[self presentViewController:tableView animated:YES completion:nil]; 

Это представляет собой контроллер представления, которое заполняет весь экран, хотя, что это не то, что я хочу. И изменение фрейма контроллера представления во время создания экземпляра не похоже на эффект. Я могу просто оживить UITableView в представлении контроллера главного представления, но тогда я не уверен, кто должен быть делегатом и источником данных. Какие-либо предложения? Заранее спасибо.

+0

Какую анимацию вы хотите? Похоже, вы должны анимировать в представлении (таблице) не новый контроллер. – rdelmar

+0

Я просто оживляю вид с помощью [UIView animateWithDuration:]. Анимация прекрасно работает, если я просто использую представление, но я не уверен, могу ли я предотвратить UITableView таким образом, поскольку ему нужен источник данных и делегировать. Могу ли я просто настроить контроллер основного представления как делегата и источника данных, когда я оживляю вид таблицы в представлении? – mike

+0

Да, конечно. Любой объект, который использует протокол UITableViewDataSource, может быть источником данных таблицы. – rdelmar

ответ

0

При добавлении вида таблицы в качестве подзаголовка u может установить размер или привязку фрейма и отобразить его с анимацией, как вам нравится. Да, вы можете настроить делегат и источник данных на себя при добавлении.

Я использую: (в viewDidLoad)

self.tableView.backgroundColor = [UIColor clearColor]; 
    self.tableView.opaque = NO; 

Тогда в cellForRowAtIndexPath:

cell.textLabel.backgroundColor = [UIColor clearColor]; 
    cell.detailTextLabel.backgroundColor = [UIColor clearColor]; 
    cell.backgroundColor = [UIColor colorWithWhite:1 alpha:.55]; 

Не уверен, если это то, что вы хотели, но это дает возможность сделать все ясно. (очевидно, альфа изменится для вашего случая, но это измеряет непрозрачность клеток)

Смежные вопросы