我有一个包含十几个不同视图控制器的项目。所有使用相同的代码来设置导航栏的背景如下:
CGRect frame = CGRectMake(0, 0, [self.title sizeWithFont:[UIFont fontWithName:@"HelveticaNeue" size:28]].width, 44);
UILabel *titleLabel = [[UILabel alloc] initWithFrame:frame];
titleLabel.text = @"Categories";
titleLabel.font = [UIFont fontWithName:@"HelveticaNeue" size:22];
titleLabel.backgroundColor = UIColorFromRGBWithAlpha(0x84A537, 0.5);
titleLabel.textAlignment = NSTextAlignmentCenter;
self.navigationItem.titleView = titleLabel;
self.navigationController.navigationBar.tintColor = UIColorFromRGBWithAlpha(0x84A537, 0.5);
self.navigationItem.titleView.backgroundColor = [UIColor clearColor];
self.navigationController.view.backgroundColor = UIColorFromRGBWithAlpha(0x84A537, 0.1);
它们都工作正常,但CollectionView中标题文本的背景为灰色。我复制并粘贴了其他VC的代码。我不知道我在做什么导致这个。我设置颜色十六进制值如下:
//RGB color macro
#define UIColorFromRGB(rgbValue) [UIColor \
colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 \
green:((float)((rgbValue & 0xFF00) >> 8))/255.0 \
blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0]
//RGB color macro with alpha
#define UIColorFromRGBWithAlpha(rgbValue,a) [UIColor \
colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 \
green:((float)((rgbValue & 0xFF00) >> 8))/255.0 \
blue:((float)(rgbValue & 0xFF))/255.0 alpha:a]
答案 0 :(得分:1)
集合视图的导航栏样式设置似乎与其他视图控制器不同。对于这些,我必须在调用控制器中设置条形颜色,并设置导航。条纹背景颜色在集合视图中以clearColor。
我希望这有助于其他人。
调用VC:
- (IBAction)imageButtonTapped:(id)sender {
imageCellLayout = [[ImageCellLayout alloc] init];
imageViewController= [[ImageViewController alloc] initWithCollectionViewLayout:imageCellLayout];
imageViewController.item = item;
addImageViewController.item = item;
imageViewController.collectionView.pagingEnabled = YES;
UINavigationController *nc = [[UINavigationController alloc] initWithRootViewController:imageViewController];
nc.navigationBar.tintColor = UIColorFromRGBWithAlpha(0xC43F32, 0.5);
nc.modalPresentationStyle = UIModalPresentationPageSheet;
[self presentViewController:nc animated:YES completion:nil];
}
集合视图:
//Title Stuff
CGRect frame = CGRectMake(0, 0, [self.title sizeWithFont:[UIFont fontWithName:@"HelveticaNeue" size:28]].width, 44);
UILabel *titleLabel = [[UILabel alloc] initWithFrame:frame];
NSString *tempTitle = item.title;
titleLabel.text = tempTitle;
titleLabel.font = [UIFont fontWithName:@"HelveticaNeue" size:22];
titleLabel.backgroundColor = [UIColor clearColor];
titleLabel.textAlignment = NSTextAlignmentCenter;
self.navigationItem.titleView = titleLabel;