iOS: нижний колонтитул ячейки таблицы - PullRequest
1 голос
/ 15 февраля 2012

У меня есть табличное представление только с несколькими строками.Поэтому вместо того, чтобы отображать кучу пробелов, я добавил пустой UIView в tableview.footer.Однако я бы хотел, чтобы последняя ячейка бросила тень на UIView.Как бы я этого достиг?Вот мой текущий код.

- (void)viewDidLoad
{
    [super viewDidLoad];
    UIView *emptyView = [[UIView alloc] initWithFrame:CGRectZero];
    CALayer *layer = [emptyView layer];
    [layer setShadowOffset:CGSizeMake(0, 1)];
    [layer setShadowColor:[[UIColor darkGrayColor] CGColor]];
    [layer setShadowRadius:8.0];
    [layer setShadowOpacity:0.8];
    self.tableView.tableFooterView = emptyView;
}

РЕДАКТИРОВАТЬ: Это добавляет UIView в нижний колонтитул, но не создает DropSadow.Я не уверен, что слой - лучший подход для этого или даже правильный для этого типа вещей.

Ответы [ 3 ]

0 голосов
/ 24 октября 2012

В итоге я использовал

shadowBackgroundView.layer.shadowOpacity = 0.3; 
shadowBackgroundView.layer.shadowRadius = 2;
shadowBackgroundView.layer.shadowColor = [[UIColor blackColor] CGColor];
shadowBackgroundView.layer.shadowOffset = CGSizeMake(0.0, 1.0);
CGPathRef shadowPath = [UIBezierPath bezierPathWithRoundedRect: shadowBackgroundView.bounds 
                                                         byRoundingCorners: UIRectCornerAllCorners
                                                               cornerRadii: CGSizeMake(PageCellBackgroundRadius, PageCellBackgroundRadius)].CGPath;
shadowBackgroundView.layer.shadowPath = shadowPath;
shadowBackgroundView.layer.shouldRasterize = YES;

[self addSubview: shadowBackgroundView];
0 голосов
/ 26 октября 2014

В cellForRowAtIndexPath: Функция:

// drop shadow
cell.layer.shadowOpacity = 1.0;
cell.layer.shadowRadius = 1.7;
cell.layer.shadowColor = [UIColor blackColor].CGColor;
cell.layer.shadowOffset = CGSizeMake(0.0, 0.0);
0 голосов
/ 15 февраля 2012

Возможно, вы установили для фрейма CGRectZero.

Нулевой прямоугольник эквивалентен CGRectMake (0,0,0,0).

Тень нулевого прямоугольника (x = 0, y = 0, ширина = 0, высота = 0) вообще не будет отображаться.

Попробуйте задать правильный размер кадра, и вы увидите разницу.

Проверьте это и для ref: https://developer.apple.com/library/mac/#documentation/graphicsimaging/reference/CGGeometry/Reference/reference.html

...