Стиль UITableView с фоновым изображением - PullRequest
1 голос
/ 24 марта 2012

Есть ли способ сделать фон UITableView как на этом изображении программно?Я имею в виду сделать верхнюю и левую границы темными, а правую и нижнюю белыми.Если это невозможно, как я могу реализовать это с одним изображением (мои UITableViewCell могут иметь разную высоту)?Спасибо!

enter image description here

Ответы [ 4 ]

0 голосов
/ 25 марта 2012

Вы можете использовать этот замечательный урок http://cocoawithlove.com/2009/04/easy-custom-uitableview-drawing.html

В основном измените фоновое изображение внутри этого метода:

- (UITableViewCell *)tableView:(UITableView *)aTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
 /// some code....

UIImage *rowBackground;
UIImage *selectionBackground;
NSInteger sectionRows = [aTableView numberOfRowsInSection:[indexPath section]];
NSInteger row = [indexPath row];
if (row == 0 && row == sectionRows - 1)
{
    rowBackground = [UIImage imageNamed:@"topAndBottomRow.png"];
    selectionBackground = [UIImage imageNamed:@"topAndBottomRowSelected.png"];
}
else if (row == 0)
{
    rowBackground = [UIImage imageNamed:@"topRow.png"];
    selectionBackground = [UIImage imageNamed:@"topRowSelected.png"];
}
else if (row == sectionRows - 1)
{
    rowBackground = [UIImage imageNamed:@"bottomRow.png"];
    selectionBackground = [UIImage imageNamed:@"bottomRowSelected.png"];
}
else
{
    rowBackground = [UIImage imageNamed:@"middleRow.png"];
    selectionBackground = [UIImage imageNamed:@"middleRowSelected.png"];
}
((UIImageView *)cell.backgroundView).image = rowBackground;
((UIImageView *)cell.selectedBackgroundView).image = selectionBackground;

// more code...

Вы должны использовать только среднюю строку, потому что этот код имеет 3 изображения, однодля первого ряда, один для последнего ряда и один для среднего ряда.Надеюсь, это поможет.

0 голосов
/ 24 марта 2012

Вы можете реализовать это с помощью Core Graphics.

См. this , чтобы узнать, как использовать Core Graphics.

Обратите внимание, что это может быть намного сложнееи привлечение к тому, чего вы хотите достичь, и могут существовать более простые решения, но если ничего не даст, CG определенно сработает:).

0 голосов
/ 24 марта 2012

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

Затем вы создадите UIImageView с imageView.contentStretch = CGRectMake(0.5f, 0.5f, 0, 0) и установите егофоновый вид для вашей таблицы или ячеек.

0 голосов
/ 24 марта 2012

Вы можете использовать EOClip от coregraphic, чтобы вырезать форму основного блока, а затем применить 2 капли тени размером 1 пиксель каждая.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...