相关疑难解决方法(0)

在Swift中用纯色创建UIImage

我想以编程方式创建一个由纯色填充的UIImage.任何人都知道如何在Swift中执行此操作?

uiimage ios swift

122
推荐指数
9
解决办法
8万
查看次数

UINavigationBar中的iOS 11 UISearchBar

我想在新的导航栏中放置一个搜索栏,其中包含新的iOS 11大标题.但是,搜索栏的颜色会自动由iOS应用,我无法更改它.

if #available(iOS 11.0, *) {
    let sc = UISearchController(searchResultsController: nil)
    navigationItem.searchController = sc
    navigationItem.hidesSearchBarWhenScrolling = false
}
Run Code Online (Sandbox Code Playgroud)

搜索栏是深蓝色背景,但我只想将其更改为白色.

在此输入图像描述

设置背景颜色会导致:

navigationItem.searchController?.searchBar.backgroundColor = UIColor.white
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我也试过setScopeBarButtonBackgroundImagesetBackgroundImage在搜索栏上但是一切看起来都很奇怪.

此外,当我通过点击搜索栏触发搜索时,它会切换到右侧有取消按钮的模式.("Abbrechen"德文)

在此输入图像描述

并且"Abbrechen"文本颜色也无法更改.(需要它也是白色的)

任何帮助表示赞赏.

编辑:根据要求,这里是导航栏样式的代码:

self.navigationBar.tintColor = UIColor.myWhite
self.navigationBar.titleTextAttributes = [NSAttributedStringKey.foregroundColor : UIColor.myWhite, NSAttributedStringKey.font: UIFont.myNavigationBarTitle()]
self.navigationBar.barTintColor = UIColor.myTint

if #available(iOS 11.0, *) {
    self.navigationBar.prefersLargeTitles = true
    self.navigationBar.largeTitleTextAttributes = [NSAttributedStringKey.foregroundColor : UIColor.myWhite, NSAttributedStringKey.font: UIFont.myNavigationBarLargeTitle()]
}
Run Code Online (Sandbox Code Playgroud)

目前的结果:我使用Krunals的想法来设置搜索栏背景的颜色,但圆角丢失了.重新设置圆角后,搜索栏的动画似乎被打破.

在此输入图像描述

所以仍然没有令人满意的解 似乎嵌入到iOS 11导航栏中的搜索栏无法自定义.同时,仅仅改变占位符文本的颜色就足够了,但即使这样也不可能.(我尝试过StackOverflow的多种方法 - 不起作用)

uinavigationbar uisearchbar ios swift ios11

21
推荐指数
1
解决办法
1万
查看次数

iOS 11 UISearchBar背景色

据我所知,这个问题已经被问过很多,很多倍左右.然而,随着Apple的发布最好,随着iOS 11的发布,它们似乎已经对它进行了一个看似不必要的改变UISearchBar,特别是它的视图层次结构.

此外,搜索栏的子视图中不再可访问搜索栏的"文本字段",导致所有先前的解决方案"访问"并更改文本字段的背景颜色或文本字段的任何属性那件事.

  • 有谁知道如何在iOS 11中实际调整搜索栏的背景颜色?

仅供参考: 我特别谈到文本背后的颜色......除非您将搜索栏样式指定为最小,否则现在从11开始默认为白色.

更新1:

因为我这个问题的帖子,我还没有找到一个有效的还是真的任何 真正解决这个问题.我似乎最接近的是深入了解外观,例如属性

[[UISearchBar class] appearanceWhenContainedInInstancesOfClasses:(nonnull NSArray<Class<UIAppearanceContainer>> *)]
Run Code Online (Sandbox Code Playgroud)

UISearchBar.使用以下找到的UITextFieldvia方法:

if ([view isKindOfClass:[UITextField class]]) {
    return (UITextField*)view;
}
UITextField *searchTextField;
for (UIView *subview in view.subviews) {
    searchTextField = [self searchViewForTextFieldBg:subview];
    if (searchTextField) {
        break;
    }
}
return searchTextField;
Run Code Online (Sandbox Code Playgroud)

您可以开始绘制要放置在视图后面的背景视图.然而,我发现过于繁琐而无法继续追求的问题是用正确的框架/边界绘制一个视图来模仿原始背景.

希望有人能找到这个问题的实际解决方案.好想念苹果......

objective-c uisearchbar ios swift ios11

10
推荐指数
3
解决办法
8205
查看次数

UISearchController不会按预期显示

我正在尝试将UISearchController添加到包含UITableView(以及MKMapView的UIViewController)中,但希望这不是问题。我遵循了Ray Wenderlich的教程,但是就行为而言,我无法获得相同的结果。

这是我的viewDidLoad:

override func viewDidLoad() {
        super.viewDidLoad()

        // Setup the Search Controller
        searchController.searchResultsUpdater = self
        searchController.obscuresBackgroundDuringPresentation = false
        searchController.searchBar.placeholder = NSLocalizedString("Search references by project, customer or city", comment: "")
        if #available(iOS 11.0, *) {
            navigationItem.searchController = searchController
            navigationItem.hidesSearchBarWhenScrolling = true
        } else {
            tableView.tableHeaderView = searchController.searchBar
        }
        definesPresentationContext = true

        self.modeSelector.layer.cornerRadius = 5.0

        if let split = splitViewController {
            let controllers = split.viewControllers
            detailViewController = (controllers[controllers.count - 1] as! UINavigationController).topViewController as? ReferenceViewController
        }

        self.navigationItem.rightBarButtonItem?.isEnabled = false
    } …
Run Code Online (Sandbox Code Playgroud)

uitableview ios swift uisearchcontroller

5
推荐指数
1
解决办法
2027
查看次数

为什么不能在iOS11中设置搜索栏的文本颜色?

我在较早的版本中使用它来在我的searchBar中获取文本字段...

UITextField *searchField = [self.navigationItem.searchController.searchBar valueForKey:@"_searchField"];
Run Code Online (Sandbox Code Playgroud)

在iOS11中,它仍然可以使用,我可以更改文本(字体,甚至colortcolor),但是我无法设置文本颜色,请教我。

UISearchController *mySearchController = [[UISearchController alloc] initWithSearchResultsController:nil];
mySearchController.searchResultsUpdater = self;
self.navigationItem.searchController = mySearchController;
Run Code Online (Sandbox Code Playgroud)

// mySearchController.hidesNavigationBarDuringPresentation = false; self.navigationItem.hidesSearchBarWhenScrolling = NO;

self.tableView.refreshControl = [[UIRefreshControl alloc] init];
[self.tableView.refreshControl addTarget:self action:@selector(refresh) forControlEvents:UIControlEventValueChanged];

self.navigationItem.title = @"xxxx";
self.navigationController.navigationBar.barTintColor = [UIColor redColor];
UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithTitle:@"reload" style:UIBarButtonItemStylePlain target:self action:@selector(refresh)];
self.navigationItem.rightBarButtonItem = item;

UITextField *txfSearchField = [self.navigationItem.searchController.searchBar valueForKey:@"_searchField"];
txfSearchField.tintColor=[UIColor blueColor];

//this code is no use
txfSearchField.textColor=[UIColor yellowColor];

txfSearchField.backgroundColor=[UIColor whiteColor];
UIView *backgroundview= [[txfSearchField subviews]firstObject ];
backgroundview.backgroundColor=[UIColor whiteColor];
backgroundview.layer.cornerRadius = 8; …
Run Code Online (Sandbox Code Playgroud)

iphone objective-c ios ios11

3
推荐指数
2
解决办法
2854
查看次数