小编drc*_*coa的帖子

UITableView自动调整行大小约束在iPhone 6Plus上神秘破解

我有一个自定义UITableViewCell,它有一个缩略图和一堆文本.行高配置为使用自动计算

tableView.estimatedRowHeight = 129;
tableView.rowHeight = UITableViewAutomaticDimension
Run Code Online (Sandbox Code Playgroud)

行高应该精确计算为138个点.iPhone 5上的一切看起来都很棒.但是,在iPhone 6 Plus上,对于具有以下日志的随机行,自动行高度无法间歇.

(
    "<NSLayoutConstraint:0x17009ddd0 V:|-(20)-[scoop.ThumbnailImage:0x124d2a5a0]   (Names: '|':UITableViewCellContentView:0x124e23200 )>",
    "<NSLayoutConstraint:0x17009de70 UITableViewCellContentView:0x124e23200.bottomMargin == scoop.ThumbnailImage:0x124d2a5a0.bottom + 20>",
    "<NSLayoutConstraint:0x17009e780 V:[scoop.ThumbnailImage:0x124d2a5a0(90)]>",
    "<NSLayoutConstraint:0x17009ef00 'UIView-Encapsulated-Layout-Height' V:[UITableViewCellContentView:0x124e23200(138.333)]>"
)
Run Code Online (Sandbox Code Playgroud)

日志的最后一行似乎表示由于某种原因行高计算为138.333 而不是138.我一直在敲我的头一段时间,但我无法弄清楚为什么会发生这种情况.有人可以帮忙吗?

更新:这是我的表格视图单元格的样子.

细胞

更新我无法从主要回购中获取代码,因为它是更大项目的一部分.但我设法通过一个非常简单的理智项目重现了这个问题.请在github上找到它.

constraints uitableview ios autolayout swift

24
推荐指数
2
解决办法
6224
查看次数

Python lambda函数计算一个数的阶乘

我刚开始学习python.我遇到了lambda函数.在其中一个问题上,作者要求为一个数字的阶乘写一个单线性lambda函数.

这是给出的解决方案:

num = 5
print (lambda b: (lambda a, b: a(a, b))(lambda a, b: b*a(a, b-1) if b > 0 else 1,b))(num)
Run Code Online (Sandbox Code Playgroud)

我无法理解奇怪的语法.(a,b)是什么意思?

谁能解释一下?

谢谢

python lambda python-2.7

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

从音频元素中获取音频样本

我想使用Web浏览器从麦克风获取实时音频,并通过websockets将其发送到Node.js服务器.我正在使用BinaryJS库将二进制数据发送到服务器.我在从麦克风获取音频样本时遇到问题.这是我有的:

window.AudioContext = window.AudioContext || window.webkitAudioContext;

var context = new AudioContext();
var audio = document.querySelector('audio');
navigator.webkitGetUserMedia({audio: true}, function(micstream){

    audio.src = window.URL.createObjectURL(micstream);

    }, errorCallback);

});

var errorCallback = function(e){
    console.log("Rejected!", e);
};
Run Code Online (Sandbox Code Playgroud)

我想要一些方法来获取每10ms左右的音频样本,以便我可以将它写入websocket流.我正在寻找这样的东西:

function getSample(){
    //read the current data in byte buffer.

    setTimeout(getSample, 10);
}
Run Code Online (Sandbox Code Playgroud)

谁能告诉我怎么做?或者还有另一种方法吗?谢谢!

javascript websocket node.js html5-audio webrtc

7
推荐指数
1
解决办法
1183
查看次数

扩展UICollectionViewDataSource协议以添加默认实现

我有一个相当大的应用程序,它有很多集合视图.大多数集合视图都具有相同的数据源和流布局代表(相同的大小,边距等)的实现.我正在尝试创建一个提供UICollectionViewDataSource和UICollectionViewDelegateFlowLayout的默认实现的协议.这是我的代码.

protocol TiledCollectionView{}

extension UICollectionViewDataSource where Self: TiledCollectionView{
    //default implementation of the 3 methods to load the data ...
}
extension UICollectionViewDelegateFlowLayout where Self: TiledCollectionView {
    //default implementation for layout methods to set default margins etc...
}

class MyViewController: UIViewController, TiledCollectionView, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout{
    // the rest of the required logic for view controller
    // here I Don't implement any CollectionView methods since I have provided the default implementation already
}
Run Code Online (Sandbox Code Playgroud)

问题是,编译器抱怨MyViewController不符合UICollectionViewDataSource.这不应该是这种情况,因为我清楚地说,如果类型是TiledCollectionView,则添加默认实现.

有人可以帮忙吗?

uicollectionview swift swift-extensions swift-protocols protocol-extension

6
推荐指数
1
解决办法
3184
查看次数

在Chrome中添加自定义搜索引擎的建议网址

我有一个本地搜索引擎支持elasticsearch和一个瘦的nodejs API用于搜索.我希望能够直接从Google Chrome(可从Google,而不是Chromium获取)中搜索这些文档.在这个用例中,我将使用chrome 与此搜索引擎,因此我不想使用OmniBox关键字搜索API.我想要在Chrome中选择默认搜索引擎时获得与我相同的行为.这是

  1. 开始在OmniBox中输入,它会显示一系列建议.
  2. 点击进入,进入搜索结果页面

我通过在设置下添加新的搜索引擎并提供搜索api的URL来获得#2的工作.我不能让#1工作.

我的服务器公开的两个网址是:

  1. http:// localhost:3000/complete?query = my(这会返回我想在OmniBox中输入时显示的搜索建议列表).

  2. http:// localhost:3000/results?query = my + sample + query(这会将实际搜索结果作为网页返回,这是有效的)

我尝试过的事情:

  1. 使用带有OpenSearchDescription.xml链接的window.externals.AddSearchProvider添加了搜索引擎.XML也有建议网址.

  2. 尝试使用OmniBox编写背景扩展,但它不允许我在不使用关键字的情况下进行搜索

我搜索了Chromium并找到了这个JSON文件

https://code.google.com/p/chromium/codesearch#chromium/src/components/search_engines/prepopulated_engines.json&q=prepopulated&sq=package:chromium&l=1

但我不知道如何使用它(或者甚至可以在官方版本的Chrome中执行此操作).

search google-chrome chromium google-chrome-extension search-suggestion

6
推荐指数
2
解决办法
2397
查看次数

如何在存储颜色名称的Less变量中转义引号?

我正在开发一个HTML/CSS项目.我想根据颜色为标签和文本创建类.例如

text-red{
    color: red;
}

label-white{
    color: white;
}
Run Code Online (Sandbox Code Playgroud)

为此,我尝试创建一个mixin接受名称和颜色作为参数并创建此类.我写了以下mixin:

.mixin(@name, @color) {
    .text-@{name} {
        color: @color !important;
    }
    .label-@{name} {
        color: @color !important;
    }
}

.mixin('white', white);
Run Code Online (Sandbox Code Playgroud)

这给了我以下输出

.text-'white'{ /* notice the quotes*/
    color: #ffffff
}
Run Code Online (Sandbox Code Playgroud)

如果我将此mixin作为.mixin(白色,白色)运行; 我明白了

.text-#ffffff{
    color: #ffffff
}
Run Code Online (Sandbox Code Playgroud)

如何使用mixin创建类似文本白的类?

html javascript css string less

4
推荐指数
1
解决办法
2510
查看次数