据我所知,这个问题已经被问过很多,很多倍左右.然而,随着Apple的发布最好,随着iOS 11的发布,它们似乎已经对它进行了一个看似不必要的改变UISearchBar,特别是它的视图层次结构.
此外,搜索栏的子视图中不再可访问搜索栏的"文本字段",导致所有先前的解决方案"访问"并更改文本字段的背景颜色或文本字段的任何属性那件事.
仅供参考: 我特别谈到文本背后的颜色......除非您将搜索栏样式指定为最小,否则现在从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)
您可以开始绘制要放置在视图后面的新背景视图.然而,我发现过于繁琐而无法继续追求的问题是用正确的框架/边界绘制一个视图来模仿原始背景.
希望有人能找到这个问题的实际解决方案.好想念苹果......
我在我的app delegate中有以下代码作为在我的其他viewControllers中使用CoreData的快捷方式:
let ad = UIApplication.shared.delegate as! AppDelegate
let context = ad.persistentContainer.viewContext
Run Code Online (Sandbox Code Playgroud)
但是,我现在收到错误消息:
"从后台线程调用UI API"和"UIApplication.delegate必须仅从主线程使用".
当我的应用程序在后台时,我正在使用CoreData,但这是我第一次看到此错误消息.有谁知道这里发生了什么?
更新:我试图在appDelegate类本身内移动它,并使用以下代码 -
let dispatch = DispatchQueue.main.async {
let ad = UIApplication.shared.delegate as! AppDelegate
let context = ad.persistentContainer.viewContext
}
Run Code Online (Sandbox Code Playgroud)
现在,我无法再访问外部的广告和上下文变量AppDelegate.有什么我想念的吗?
我有一个包含一堆单元格的表视图(自定义单元格,只有其内容视图).
在tableView:cellForRowAtIndexPath:我添加预定义的UIView(有几个子视图)到自定义单元格的内容视图.我之前为UIView及其子视图设置了所有约束.
最后但并非最不重要的是,我为自定义单元格(superview)的内容视图和之前添加的UIView(子视图)设置了垂直和水平约束.
约束字符串如下所示:
H:|[view]|
V:|[view]|
Run Code Online (Sandbox Code Playgroud)
不幸的是,我仍然获得所有表视图单元格的默认高度.我想知道是否有办法让自动布局根据内容大小自动计算高度.
即使将iPhone 6 plus模拟器扩展到50%(没有选项可以缩小此尺寸),使用它的尺寸仍然很大.如何将其缩小到25%或更低?

我正在使用Xamarin.Forms构建应用程序,在制作XAML页面时,我收到以下错误:
" http://schemas.microsoft.com/winfx/2009/xaml "命名空间中不存在"类"属性.
这不是我制作的第一页,除了这一页之外,所有其他页面似乎都能正常工作.我检查了所述文件的引用和属性,它们看起来都很好.
这是我的代码:
<?xml version="1.0" encoding="utf-8" ?>
<controls:ViewPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="XXXX"
xmlns:controls="XXXX"
</controls:ViewPage>
Run Code Online (Sandbox Code Playgroud)
背后的代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using XXXX;
using Xamarin.Forms;
namespace XXXX
{
public partial class ActOverviewView : ViewPage, IActOverviewView
{
public ActOverviewView()
{
InitializeComponent();
}
}
}
Run Code Online (Sandbox Code Playgroud)
我正在使用Visual Studio 2015
我一直在浏览最近的swift文档,并在swift4中了解私有和fileprivate关键字的几个例子.我试图在同一个类的扩展中访问fileprivate和private变量,并且另一个类继承类,但输出是无效的.我正在以下列方式使用
class privateUsageExample: UIViewController {
private var priVar = false
fileprivate var fPriVar = false
}
// usage of extension in the same class
extension privateUsageExample: UITextFieldDelegate {
if priVar{ // do something} // error : expected declaration
if fPriVar{ // do something} // error : expected declaration
func randFunc(){
self. fPriVar = true // accessible don't know the reason
}
}
// access of private and fileprivate variables in another class different file
class anotherUsageInDiffSwiftFile: privateUsageExample {
priVar = …Run Code Online (Sandbox Code Playgroud) 如何doubleClick()使用Web驱动程序在记录上编写selenium java代码?
我在身体部位显示了一些记录.一旦我点击了一条记录,我们就应该有一个弹出窗口来更新它.
请建议如何使用Web驱动程序编写Selenium Java代码.
我试过以下代码:
Actions action = new Actions(driver);
action.moveToElement(driver.findElement(By.xpath("//table/tbody/tr[2]/td/div/div/table/tbody/tr[10]/td[1]"))).doubleClick().build().perform();
Run Code Online (Sandbox Code Playgroud) 我有一个UILabel,它被设置为42.0磅字体,标签的宽度是根据标签本身以外的因素使用自动约束设置的(也就是标签右边和左边的东西确定标签的宽度).
我想自动调整字体大小以适应标签的宽度,但是如果可以的话也会分成两行.与此类似:
我知道您可以调整字体大小以适应标签的宽度,但仅限于行数设置为1时.
我怎么做到这一点?
打开视图时,它将如下图所示,
对于iphone x,我想在当前视图中以编程方式添加安全区域.
尝试的来源如下.
UIView *view = self.view;
if (@available(iOS 11.0, *)) {
UILayoutGuide * guide = view.safeAreaLayoutGuide;
[view.topAnchor constraintEqualToAnchor:guide.topAnchor].active = YES;
[view.bottomAnchor constraintEqualToAnchor:guide.bottomAnchor].active = YES;
}
Run Code Online (Sandbox Code Playgroud)
我想应用这个来源,但我不知道该怎么做.
请回答我的问题.
使用Xcode 9.3(测试版)时,我遇到了Xcode工具的问题,而我在Xcode启动/启动后第一次尝试构建/运行应用程序(项目).
有几次,它会阻止项目构建,并在状态栏上显示消息:
等待iPhone-X启动
虽然我的模拟器已经启动并正常工作(没有任何活动,继续,在模拟器中).
这是参考快照:
作为临时解决方案,我强制关闭Xcode(9.3)并重新开始.
Xcode 9.3 beta是否有任何人面临同样的问题?
更新:Xcode 9.3-Beta 2中也存在同样的问题.
ios ×8
swift ×4
xcode ×3
ios11 ×2
objective-c ×2
xcode9 ×2
autolayout ×1
font-size ×1
java ×1
row-height ×1
selenium ×1
simulator ×1
swift3 ×1
swift4 ×1
uilabel ×1
uisearchbar ×1
uitableview ×1
xamarin ×1
xaml ×1