在moreNavigationController中更改UIImageView的TintColor

时间:2016-03-09 11:33:57

标签: ios uiimageview

我有这个代码来自定义我的moreNavigationController:

UITableView *tView = (UITableView*)tabController.moreNavigationController.topViewController.view;
if ([[tView subviews] count]) {
    for (UITableViewCell *cCell in [tView visibleCells]) {
        cCell.textLabel.textColor = TABLECELL_TEXT_COLOR;
        cCell.textLabel.highlightedTextColor = TABLECELL_TEXT_COLOR_HIGHLIGHTED;
        cCell.contentView.backgroundColor = TABLECELL_BACKGROUND_COLOR;
        cCell.backgroundColor = TABLECELL_BACKGROUND_COLOR;
        UIView * selectedBackgroundView = [[UIView alloc] init];
        UIColor *uicCell = TABLECELL_BACKGROUND_COLOR_SELECTED
        [selectedBackgroundView setBackgroundColor:uicCell];
        [cCell setSelectedBackgroundView:selectedBackgroundView];
    }
}

我已将TabBar的图像更改为灰色和绿色,但当我点击更多按钮时,结果是:

enter image description here

我不明白为什么是蓝色,所以我试图改变色调但没有接缝可以工作。

我已将此代码添加到我的函数中:

UIImageView *imgV = cCell.imageView;
imgV.tintColor = [UIColor redColor];
[imgV setTintColor:[UIColor redColor]];
UIImageView *imgV2 = imgV;

这就是我在变量中可以看到的:

enter image description here

enter image description here

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

经过多次尝试后,这是最终的代码:

UITableView *tView = (UITableView*)tabController.moreNavigationController.topViewController.view;
UIColor *tViewColor = MORE_TINTCOLOR;
[tView setTintColor: tViewColor];
if ([[tView subviews] count]) {
    for (UITableViewCell *cCell in [tView visibleCells]) {
        cCell.textLabel.textColor = TABLECELL_TEXT_COLOR;
        cCell.textLabel.highlightedTextColor = TABLECELL_TEXT_COLOR_HIGHLIGHTED;
        cCell.contentView.backgroundColor = TABLECELL_BACKGROUND_COLOR;
        cCell.backgroundColor = TABLECELL_BACKGROUND_COLOR;
        UIView * selectedBackgroundView = [[UIView alloc] init];
        UIColor *uicCell = TABLECELL_BACKGROUND_COLOR_SELECTED
        [selectedBackgroundView setBackgroundColor:uicCell];
        [cCell setSelectedBackgroundView:selectedBackgroundView];
    }
}

你必须改变UITableView TintColor。

感谢所有人。

答案 1 :(得分:1)

这是 Swift 5 的解决方案:

viewDidLoad子类的UITabBarController中添加以下内容

if let topViewController = self.moreNavigationController.topViewController {
    if let tableView = topViewController.view as? UITableView {
        tableView.tintColor = .accent
    }
}

enter image description here