从iOS 9开始,我遇到了UIPopoverPresentationController的背景问题.看起来形状和颜色都破了.
在下面的代码中,我在prepareForSegue函数中定义了一个popover,并设置了它的首选内容大小和背景颜色.大小正确显示,但背景视图的形状有一些错误.此外,颜色未设置(箭头和破碎的形状是白色而不是深灰色(图片)).在iOS 8中,它按预期工作.
UIPopoverBackgroundView的子类化应该是最后一个选项,因为我只想更改它的颜色,没有别的.
有任何想法吗?
let vc = segue.destinationViewController as! StatisticSettings_TVC
vc.preferredContentSize = CGSizeMake(300.0, 400.0)
vc.view.backgroundColor = app.COLOR_STAT_LEGEND_BACKGROUND
if let ppc = vc.popoverPresentationController {
ppc.delegate = self
ppc.backgroundColor = app.COLOR_STAT_LEGEND_BACKGROUND
}
Run Code Online (Sandbox Code Playgroud)
我想用RequireJS加载一个html内容,如下所示:
define(function (require) {
"use strict";
return function (id) {
var url = 'text!screens/' + id + '.html';
var html = require(url);
}; });
Run Code Online (Sandbox Code Playgroud)
但是我收到此错误: 错误:模块名称"text!screens/home.html_unnormalized2"尚未加载上下文:_
如果我以这种方式尝试:
define(function (require) {
"use strict";
return function () {
var html = require('text!screens/home.html');
}; });
Run Code Online (Sandbox Code Playgroud)
一切都好.但由于硬核提示网址,这种方法并不是很好.我怎么解决这个问题?
我有以下代码:
struct MyStruct {
var v: Int = 1
}
func createInstance<T: Any>(type: T.Type) -> T
{
return type.init()
}
let myType = MyStruct.self
let instance = createInstance(type: myType)
Run Code Online (Sandbox Code Playgroud)
这不起作用,因为我不保证,T 有一个 init。
Playground execution failed: error: MyPlayground.playground:76:12: error: type 'T' has no member 'init'
return type.init()
^~~~ ~~~~
Run Code Online (Sandbox Code Playgroud)
但是我如何定义一个约束来保证类型有一个 init 呢?