小编Ran*_*oms的帖子

启用+禁用自动布局约束

我有一个简单的(我认为)问题:我有一个UIImageView,我在故事板中设置了多个约束.

有时,我需要禁用约束,并frame手动设置它,但稍后,我将要重新启用这些约束并让视图返回到约束所决定的位置.

我以为我可以这样做:

@IBOutlet weak var imageView: UIImageView!
@IBOutlet weak var constraint: NSLayoutConstraint!

func example() { 

    //to set its location and size manually
    imageView.removeConstraint(constraint) 
    imageView.frame = CGRectMake(...)

    //to cause it to return to its original position
    imageView.addConstraint(constraint) 

}
Run Code Online (Sandbox Code Playgroud)

但是,有了这个,我得到了错误2015-08-26 01:14:55.417 Constraints[18472:923024] The view hierarchy is not prepared for the constraint: <NSLayoutConstraint:0x7fbb72815f90 V:[_UILayoutGuide:0x7fbb72814c20]-(100)-[UIImageView:0x7fbb72814540]>.有谁知道为什么会出现这个错误?

view通过调用添加约束来self.view.addConstraint(...)消除错误,但仍然没有将图像视图带回到它应该的位置.

我注意到我甚至不必删除或停用约束,以便能够设置imageView没有问题的框架,只要我不打电话setTranslatesAutoresizingMaskIntoConstraints(true).

我已经看过这个问题,但答案似乎不必要地复杂,可能已经过时,甚至不适用.

我也看到了这个问题,但这并没有涵盖可以重新启用的约束 - 只能禁用它们.

试图设置active属性:

self.top.active = …
Run Code Online (Sandbox Code Playgroud)

nslayoutconstraint swift

31
推荐指数
2
解决办法
2万
查看次数

Swift:从Closing中阻止ABPeoplePickerNavigationController

我想找出一种方法,这样,如果用户按下"取消"按钮(我认为不能删除)ABPeoplePickerNavigationController,视图控制器要么不关闭,要么自动重新打开.

例如,给出以下内容:

var picker = ABPeoplePickerNavigationController()
picker.peoplePickerDelegate = self
self.presentViewController(picker, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)

我希望能够做到这样的事情:

if (self.presentedViewController != picker && !userContinuedPastPicker) {
//where userContinuedPastPicker is a boolean set to false 
//in a delegate method called when the user clicks on an a contact 
//(meaning the user didn't press the cancel button but instead clicked on a contact)

    //create and present a UIAlertAction informing the user they must select a contact

    //present picker again
    self.presentViewController(picker, animated: true, completion: nil) …
Run Code Online (Sandbox Code Playgroud)

uinavigationcontroller abaddressbook ios presentviewcontroller swift

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

没有卡分享图像到Twitter

鉴于某个地址的图像,http://www.thissite.will/never/be-finished.png最简单的方法是将它分享到Twitter,最好不带卡?


用户自定义SVG,当他们满意时,我将其转换为PNG并将其存储在我的服务器上.

我想让他们选择在Twitter上分享图片.他们点击了一个按钮(我可以实现),然后会打开一个对话框,在那里他们可以添加到推文(应该已经包含图片).

我知道类似的问题已经被问过这个网站,但我希望使用"一卡通"共享图像.相反,我想要一个典型的非卡片推文,只需要一张图片(就像这样).

我反复浏览了Twitter开发者文档,但是找不到有用的信息.该POST状态/ update_with_media方法已过时,并链接到"上传媒体指南"建议的替换,是坏了.我认为,本指南是它要链接的内容,但它没有JavaScript代码来说明实际应该如何实现它.

请帮忙.


我的尝试,基于POST media/upload:

$.ajax({
    url: "https://upload.twitter.com/1.1/media/upload.json", 
    format: "post", 
    data: {"data" : link}
}).success(function(response) {
    console.log(":)");
    console.log(response);
}).fail(function(response) {
    console.log(":(");
    console.log(response.responseText);
});
Run Code Online (Sandbox Code Playgroud)

这失败了.该responseText{"errors":[{"code":215,"message":"Bad Authentication data."}]}.


基本上,我想做类似于StackOverflow的工作.当您单击某个问题上的"共享",然后选择Twitter时,会弹出一个新窗口,其中填充了该问题的链接以及用户可以编写自己的消息的位置.(Twitter提供界面.)

然而,在我的情况下,当发送推文时,而不是返回到页面的链接以及从中提取的一些文本,我想只有一个图像.

javascript twitter svg oauth sharing

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

Swift:在没有TabBar和NavigationBar的情况下裁剪屏幕截图

我有整个屏幕的截图screenshot,使用以下内容生成:

let layer = UIApplication.sharedApplication().keyWindow!.layer
let scale = UIScreen.mainScreen().scale
UIGraphicsBeginImageContextWithOptions(layer.frame.size, false, scale);

layer.renderInContext(UIGraphicsGetCurrentContext())
let screenshot = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
Run Code Online (Sandbox Code Playgroud)

我想裁剪它,以便不包括标签栏,我尝试使用以下代码:

let crop = CGRectMake(0, 0, //"start" at the upper-left corner
self.view.bounds.width, //include half the width of the whole screen
self.view.bounds.height + self.navigationController!.navigationBar.frame.height) //include the height of the navigationBar and the height of view

let cgImage = CGImageCreateWithImageInRect(screenshot.CGImage, crop)
let image: UIImage = UIImage(CGImage: cgImage)!
Run Code Online (Sandbox Code Playgroud)

此代码image仅显示屏幕的一小部分,从屏幕左上角开始的矩形(0,0),向右延伸不到屏幕宽度的一半,然后向下不到一半屏幕的高度.不过,我想要包括整个屏幕,除了标签栏占用的区域.有没有这种方法来裁剪它?

screenshot cgimage ios uigraphicscontext swift

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

Swift Localization:Genstrings

我正在尝试准备我的应用程序以传递给翻译人员进行本地化,但我遇到了一些问题.我将文件"Localizable.strings"添加到我的项目中,并选中了"Use Base Internationalization".

然而,看看我在Xcode中的应用程序,我没有看到任何语言的"Base.lproj"或"en.lproj"或.lproj文件,但是当我在Finder中打开我的应用程序时,我可以看到"en.lproj" "和"es.lproj"文件夹.

我猜这可能是genstrings实用程序对我不能正常工作的原因.我的代码中有很多调用self.navigationItem.title = NSLocalizedString(...),但是当我执行时genstrings *.swift,Localizable.strings没有任何变化,我仍然看不到任何.lproj文件夹.

xcode localization genstrings ios swift

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

在Curve周围弯曲SVG` <g>`

我正在使用D3.js <path>直线绘制一些SVG .所有这些元素都包含在<g>具有相同垂直变换的a中.

在此输入图像描述

我想围绕圆弧"包裹"这些元素.最后,每个矩形应该成为圆弧的一小部分,垂直线将指向圆的中心.

我意识到我可能从一开始就在弧形中执行此操作:例如,绘制粗圆圈段端对端而不是矩形.然而,这听起来像很多数学和计算,特别是对于刚接触SVG的人.

有没有办法将这些元素转换为事后曲线,这意味着我可以使用绘制这些矩形的代码 - 可能通过更改transform属性?如果有一个外部SVG库(虽然我看起来没有成功),我也考虑使用它.

javascript graphics svg vector-graphics d3.js

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

将 SVG 分享到 Facebook

用户自定义 SVG,当他们满意时,我想给他们在 Facebook 上共享图像的选项。

我知道 Facebook 不接受 SVG,因此,在阅读问题后,我想出了以下使用canvg

var svgText = "<svg>" + $("#canvas2").html() + "</svg>";

canvg(document.getElementById('drawingCanvas'), svgText);

var img = document.getElementById('drawingCanvas').toDataURL("image/png");
Run Code Online (Sandbox Code Playgroud)

尽管命名.toDataURLimg不是那么URL(至少,我不认为这是),但> 10,000个字符的字符串,与众生data:image/png;base64,...

如果我然后尝试允许用户在 Facebook 上共享 PNG,

window.FB.ui({
     href: "https://dna.land",
     method: 'feed',
     name: 'name',
     link: "dna.land",
     picture: img,
     caption: 'mywebsite.com',
     description: "description",
     message: "message"
}, function(response) {});
Run Code Online (Sandbox Code Playgroud)

我得到的错误消息是“参数href”是必需的(我显然正在提供......可能img太长并且JSON被截断?),尽管我也看到我没有提供有效的URL为picture

如何在 Facebook 上分享图像数据?

如果无法使用 PNG 的原始 base 64 编码来做到这一点,我不反对将 PNG 文件临时存储在服务器上。但是,理想情况下,我只会存储 24 小时、几个月或一些小的时间跨度,然后可以在用户的​​帖子不消失的情况下将其删除。那可能吗?

javascript svg facebook facebook-graph-api canvg

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

Keras:class_weight实际上试图平衡什么?

我的数据存在严重的阶级失衡。约99.99%的样品为阴性。正数(大致)在其他三个类别之间平均分配。我认为我正在训练的模型基本上总是在预测多数学生。因此,我正在尝试对课程进行加权。

模型

model = Sequential()

#Layer 1
model.add(Conv1D( {{choice([32, 64, 90, 128])}}, {{choice([3, 4, 5, 6, 8])}}, activation='relu', kernel_initializer=kernel_initializer, input_shape=X_train.shape[1:]))
model.add(BatchNormalization())

#Layer 2
model.add(Conv1D({{choice([32, 64, 90, 128])}}, {{choice([3, 4, 5, 6])}}, activation='relu',kernel_initializer=kernel_initializer))
model.add(Dropout({{uniform(0, 0.9)}}))

#Flatten
model.add(Flatten())

#Output
model.add(Dense(4, activation='softmax'))
Run Code Online (Sandbox Code Playgroud)

{{...}}用于Hyperas。)

我如何尝试加权

\ 1。class_weight在中使用model.fit()

model.fit(X_train, Y_train, batch_size=64, epochs=10, verbose=2, validation_data=(X_test, Y_test), class_weight={0: 9999, 1:9999, 2: 9999, 3:1})
Run Code Online (Sandbox Code Playgroud)

\ 2。使用class_weightmodel.fit()sklearn compute_class_weight()

model.fit(..., class_weight=class_weight.compute_class_weight("balanced", np.unique(Y_train), Y_train)
Run Code Online (Sandbox Code Playgroud)

\ 3。具有自定义损失功能

from keras import …
Run Code Online (Sandbox Code Playgroud)

python neural-network keras tensorflow loss-function

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

Python Turtle Graphics窗口仅打开然后关闭

我最近开始在Python中使用turtle模块,我承认,我是一个完整的新手.我一直无法获得图形窗口,其中乌龟的绘图保持打开状态.即使我尝试运行这样简单的事情:

import turtle
wn = turtle.Screen()
tur = turtle.Turtle()
tur.forward(50)
Run Code Online (Sandbox Code Playgroud)

我得到的是Python启动器图标,在我的码头上出现一瞬间关闭.感谢任何帮助,顺便说一下,我在Aptana Studio 3中这样做.

python graphics module turtle-graphics

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