iPhone UITableView PlainStyle с пользовательским фоновым изображением - сделанный “полностью” в коде

DLL является динамически подключаемой библиотекой. Это - набор кода и/или данных, которые могут использоваться несколькими приложениями (или другие библиотеки/модули).

Так, например, общепринятые методики для обработки файлов работа с компонентами графического интерфейса пользователя и т.д. сделана доступной в библиотеках, таким образом, несколько приложений могут использовать ту же функциональность. Это не только уменьшает потребность создать тот же материал многократно, но это также гарантирует, что, например, стандартные диалоги то же между приложениями.

Библиотеки могут быть загружены во времени выполнения и таким образом совместно использованы различными параллельными приложениями. Это называют динамическим подключением.

В некоторых случаях библиотека может быть включена в рамках самого приложения. Это известно как статическое подключение. Статическое подключение делает развертывание легче за счет гибкости, поскольку другое приложение каждый загрузит ту же копию DLL.

Однако статическое подключение является не всегда опцией. Например, Вы не можете статически связать приложение.NET. У пользователя должны быть библиотеки.NET для запуска приложения.NET и библиотек (или блоки, как их называют в.NET), загружаются во времени выполнения.

DLLs создаются теми же инструментами, используемыми для создавания приложений. Определенные детали зависят очень от используемых инструментов.

7
задан etolstoy 14 April 2014 в 14:52
поделиться

3 ответа

Вам необходимо настроить свой контроллер как UIViewController , а не как UITableViewController . Затем программно добавьте tableview над фоном imageView .

@interface SomeController : UIViewController <UITableViewDataSource, UITableViewDelegate> {
  ...
  UITableView *tableView;
  ...
}
@property (nonatomic, retain) UITableView *tableView;
@end



@implementation SomeController

@synthesize tableView;

...

- (void)loadView {
    [super loadView];
    UIImageView *v = [[[UIImageView alloc] initWithFrame:self.view.bounds] autorelease];
    [v setImage:[UIImage imageNamed:@"table_background.png"]];
    [self.view addSubview:v];


    self.tableView = [[[UITableView alloc] initWithFrame:self.view.bounds] autorelease];
    [self.tableView setBackgroundColor:[UIColor clearColor]];
    [self.view addSubview:self.tableView];
}
...
@end
9
ответ дан 6 December 2019 в 11:49
поделиться

Хорошо, теперь он работает :) Мой tableView не был заполнен моими ячейками, поэтому breakPointing через то, что я обнаружил что, хотя я реализовал TableViewDataSource и TableViewDelegate, это было только в основном представлении, мне нужно было установить делегат и источник данных для tableview = self. Для других, ищущих ответ на этот вопрос, вот метод, который закончился с помощью Конибира:

- (void)loadView {
[super loadView];

UIImageView *imageView = [[[UIImageView alloc] initWithFrame:self.view.bounds] autorelease];
[imageView setImage:[UIImage imageNamed:@"carbon_background.png"]];
[self.view addSubview:imageView];

[self.tableView = [[UITableView alloc] initWithFrame:self.view.bounds] autorelease];
[self.tableView setBackgroundColor:[UIColor clearColor]];
[self.view addSubview:self.tableView];

self.tableView.delegate = self;
self.tableView.dataSource = self;

}

2
ответ дан 6 December 2019 в 11:49
поделиться

Thanks Coneybeare.

It doesn't crash anymore and the background image turns up just perfect (along with my navigationController in the top) However, still no visible tableView? just the background image and the navigationControllerBar:

This is my implementation:

- (void)loadView {
[super loadView];

UIImageView *imageView = [[[UIImageView alloc] initWithFrame:self.view.bounds] autorelease];
[imageView setImage:[UIImage imageNamed:@"carbon_background.png"]];
[self.view addSubview:imageView];

[self.tableView = [[UIView alloc] initWithFrame:self.view.bounds] autorelease];

[self.tableView setBackgroundColor:[UIColor clearColor]];
[self.view addSubview:self.tableView];

}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)theTableView {
return 1;

}

- (NSInteger)tableView:(UITableView *)theTableView numberOfRowsInSection:(NSInteger)section {
return 3;

}

- (UITableViewCell *)tableView:(UITableView *)theTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

static NSString *CellIdentifier = @"Cell";

UITableViewCell *cell = [theTableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
}
cell.textLabel.text = @"Hello, World";

return cell;

}

//commit edit, didSelectRow, memory … etc.

The forum wasn't up for an entire .m file in one go. Please tell me if I left something out that could help indicate an error.

I thought maybe it was the order of the layers and tried this without any luck:

    [self.view sendSubviewToBack:imageView];

Hope I missed something obvious.

Thanks for your time:)

0
ответ дан 6 December 2019 в 11:49
поделиться
Другие вопросы по тегам:

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