Я пытался реализовать
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
для получения текстовой метки заголовка в разделе черного цвета вместо белого цвета но это выглядит настолько отличающимся от значения по умолчанию один созданный SDK, мой так ужасен.
Как воссоздать UIView с точно тем же как то от SDK?
Из документации Apple:
Обсуждение
Табличное представление использует стиль фиксированного шрифта для заголовков заголовка раздела. Если Вы хотите другой стиль шрифта, возвратите пользовательское представление (например, объект UILabel) в методе делегата tableView:viewForHeaderInSection: вместо этого.
Хотя это не совсем правильно, я публикую это в надежде, что кто-то сможет улучшить мой подход. Текст правильный (белый, как по умолчанию, но вы можете изменить это). Градиент фона и непрозрачность не идеальны (слишком легкие??) --здесь может потребоваться некоторая настройка.
Получите заголовок раздела.png здесь: http://img5.imageshack.us/img5/6616/sectionheaderbackground.png
// Create a stretchable image that emulates the default gradient
UIImage *buttonImageNormal = [UIImage imageNamed:@"sectionheaderbackground.png"];
UIImage *stretchableButtonImageNormal = [buttonImageNormal stretchableImageWithLeftCapWidth:12 topCapHeight:0];
// Create the view for the header
CGRect sectionFrame = CGRectMake(0.0, 0.0, 320.0, 22.0);
UIView *sectionView = [[UIView alloc] initWithFrame:sectionFrame];
sectionView.alpha = 0.9;
sectionView.backgroundColor = [UIColor colorWithPatternImage:stretchableButtonImageNormal];
// Create the label
CGRect labelFrame = CGRectMake(10.0, 0.0, 310.0, 22.0);
UILabel *sectionLabel = [[UILabel alloc] initWithFrame:labelFrame];
sectionLabel.text = @"Test section label";
sectionLabel.font = [UIFont boldSystemFontOfSize:18.0];
sectionLabel.textColor = [UIColor whiteColor];
sectionLabel.shadowColor = [UIColor grayColor];
sectionLabel.shadowOffset = CGSizeMake(0, 1);
sectionLabel.backgroundColor = [UIColor clearColor];
[sectionView addSubview:sectionLabel];
[sectionLabel release];
// Return the header section view
return sectionView;
Вы можете попытаться имитировать это, используя shadowColor
и shadowOffset
.
Я сделал это черным, например, используя следующий код:
label.shadowColor = [UIColor whiteColor];
label.shadowOffset = CGSizeMake(1, 1);
Изменяя цвета и комбинации теней, вы можете довольно хорошо имитировать метку.