小编Adr*_*ian的帖子

Objective-C setFrame等效的Swift

我有一个Objective-C项目,我正在重构,我已经找到了一条我无法翻译的行,Apple的文档网站似乎已经关闭了:

[self.stepperView setFrame:self.stepperView.frame];
Run Code Online (Sandbox Code Playgroud)

我试过这个:

    self.stepperView.frame = stepperView.frame
Run Code Online (Sandbox Code Playgroud)

但是这个观点仍然在错误的地方被吸引.有没有人知道setFrameSwift中的等价物?

我试着查看Apple的文档,但似乎该网站已关闭:

在此输入图像描述

objective-c uiview swift swift2

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

在Xcode 7.2中使用PDF图标图像

我正在尝试将PDF文件用作我正在处理的应用程序中的图标.我遇到的问题是我的颜色变得不一致.

如果我从界面构建器设置了按钮图像,则图标图像在运行时显示为黑色.每次.无论我尝试从界面构建器设置什么.

我尝试通过代码设置我的按钮图标图像,而不是显示黑色,它是白色的:

let myGraphicFile = UIImage(named: "myPDFImage")
let myButtonImage = myGraphicFile?.imageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate)
myButton.setImage(myButtonImage, forState: .Normal)
Run Code Online (Sandbox Code Playgroud)

从代码中,无论我尝试将色调设置为什么,它始终是代码中的白色.

我发现这篇关于Xcode 6.x的帖子,但我认为它可能已经过时了,因为我能够部分地做到这一点,但是我无法设置色调.

在XCode中使用PDF作为AppIcon(.appiconset集合)

我在Inkscape中创建图标,另存为PDF 1.5.我将文件添加到Images.xcassets.在Images.xcassets'属性检查器中,我设置:

设备通用

比例因子单一矢量.

简介:我可以让它显示并正确缩放,但它可以是界面构建器中的黑色或代码中的白色.我怀疑我错过了一些东西:如何从Inkscape中保存文件.

谢谢你的阅读.如果您有任何建议,我欢迎他们.

xcode vector-graphics uibutton ios swift

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

更改ChartJS条形图上的fontFamily

我在一个项目中部分实现了ChartJS,但我无法弄清楚如何更改条形图的X和Y轴上显示的字体.

我已经阅读了ChartJS文档,在GitHub上搜索了一些示例等等.我不确定我做错了什么,但我放心,知道解决方案将涉及一行代码,并且对我来说是一个令人吃惊的愚蠢疏忽部分.

此代码绘制我想要的图表,但使用默认字体:

var barChartLanguage = Chart.Bar(myCanvas, {
    data: dataLanguages,
    options: options,
    defaults: defaults
});
Run Code Online (Sandbox Code Playgroud)

我尝试在defaults没有成功的情况下更改字体:

var defaults = {
    global: {
        // example font
        defaultFontFamily: "'Raleway'"
    }
};
Run Code Online (Sandbox Code Playgroud)

我尝试在轴上更改它options:

var options = {
    animation: {
        duration: 2000
    },
    scales: {
        yAxes: [{
            display: true,
            ticks: {
                suggestedMin: 0,    // minimum will be 0, unless there is a lower value.
                // OR //
                beginAtZero: true,   // minimum value will be 0.
                suggestedMax: …
Run Code Online (Sandbox Code Playgroud)

javascript chart.js

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

Visual Studio代码没有看到wget

我在我的机器上安装了Python 2.7.我在Visual Studio Code(VSC)(MacOS发行版)中使用它没有问题,但我很难让Visual Studio Code"看" wget.

在我的VSC中,我将以下import语句添加到myProject.py:

import wget
Run Code Online (Sandbox Code Playgroud)

linter说这个:

E0401:无法导入'wget'

wget通过以下命令验证我已安装:

which wget
Run Code Online (Sandbox Code Playgroud)

...返回......

/usr/local/bin/wget
Run Code Online (Sandbox Code Playgroud)

我尝试重新安装它brew install wget,但它说已经安装了.所以我试过sudo -H pip install wget,我认为安装成功.

收集wget下载wget-3.2.zip为收集的包构建轮子:wget运行setup.py bdist_wheel for wget ... done存储在目录中:/ var/root/Library/Caches/pip/wheels/6d/98/29/61ccc41148f871009126c2e844e26f73eeb25e12cca92228a5成功构建wget安装收集的软件包:wget成功安装wget-3.2

我关闭VSC并重新打开它.我继续在linter中得到这个错误:

E0401:无法导入'wget'

我最近安装和卸载了anaconda,我很确定这是我痛苦的根源.我不经常使用Python,但我发现自己正在开发一个非常方便的项目.我没有想法:如何解决这个问题.我欢迎你的建议,谢谢你的阅读.

更新:

这个问题描述了我遇到的问题.我已经尝试了建议的解决方案,但它们似乎都没有摆脱我的linter错误.

更新我的内容.bash_profile似乎没有任何影响:

export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/site-packages  
Run Code Online (Sandbox Code Playgroud)

python wget

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

FRC内容更改时的UITableView异常

我有一个UITableView显示来自的数据NSFetchedResultsController.FRC中显示的数据量不等,从一次提取的约20条记录到最大的一条记录的约14k条记录.我遇到的问题是,如果我在tableView滚动大型提取时执行提取,我会得到一个异常.到cellForRowAtIndexPath被调用时,FRC已经更新,并且没有数据,导致异常.

我找到了这篇帖子,听起来就像我遇到的那样,虽然我无法通过这种方法解决它.

  func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: cellReuseID, for: indexPath) as! CustomTableViewCell
    // Exception occurs here
    let myObject = fetchedResultsController.object(at: indexPath)
    cell.myObject = myObject

    return cell
  }
Run Code Online (Sandbox Code Playgroud)

这是堆栈跟踪:

0   CoreFoundation                      0x0000000110b241e6 __exceptionPreprocess + 294
1   libobjc.A.dylib                     0x000000010b820031 objc_exception_throw + 48
2   CoreData                            0x000000010c2458fd -[NSFetchedResultsController objectAtIndexPath:] + 685
3   MyApp                         0x000000010aaf36c5 _T011MyApp0B14ViewControllerC05tableC0So07UITableC4CellCSo0fC0C_10Foundation9IndexPathV12cellForRowAttF + 437
4   MyApp                         0x000000010aaf39ec _T011MyApp0B14ViewControllerC05tableC0So07UITableC4CellCSo0fC0C_10Foundation9IndexPathV12cellForRowAttFTo + 92
5   UIKit                               0x000000010cf45567 -[UITableView …
Run Code Online (Sandbox Code Playgroud)

uitableview nsfetchedresultscontroller ios swift

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

意外的联合发布商行为

我正在构建一个抵押贷款计算器作为学习练习Combine。一切都进展顺利,直到我遇到一种情况,当Publishers我对它进行单元测试时,我没有从我的一个中获得确定性的已发布输出。我没有进行任何异步调用。这是有问题的AnyPublisher

public lazy var monthlyPayment: AnyPublisher<Double, Never> = {
    Publishers.CombineLatest3(financedAmount, monthlyRate, numberOfPayments)
        .print("montlyPayment", to: nil)
        .map { financedAmount, monthlyRate, numberOfPayments in
            let numerator = monthlyRate * pow((1 + monthlyRate), Double(numberOfPayments))
            let denominator = pow((1 + monthlyRate), Double(numberOfPayments)) - 1
            
            return financedAmount * (numerator / denominator)
        }
        .eraseToAnyPublisher()
}()
Run Code Online (Sandbox Code Playgroud)

假设我将抵押贷款类型从 30 年期更改为 15 年期,会发生一些情况:

  1. numberOfPayments由于抵押贷款期限(长度)变化而产生的变化
  2. monthlyRate由于抵押贷款期限(长度)的变化

最终目标

我的最终目标是等待financedAmount、、monthlyRatenumberOfPayments出版商完成他们的工作,当他们全部完成后,然后计算每月付款。Merge 3 似乎会获取每个发布者中的更改,并且对于每个更改,它都会计算并吐出我不想要的输出。

具有问题类和相关单元测试的回购协议

我尝试过的

我尝试过使用MergeMany, Merge3, …

publisher swift combine

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

UITableViewCells没有第一次显示

我正在尝试使用iOS 8,Swift和Xcode 6.3创建自动完成器

我有一个问题,我正在努力解决,但我放弃了...我希望有人可以在这里帮忙.问题是UITableViewCell当初始化dataSource为空时(自定义)不会显示.当添加数据datasource和重新加载时tableView,单元格应该显示,但它们不会......至少,它们第一次没有...第二次,它们会......当我用非初始化表格时 - 空数据,问题不会发生.我想有些事情出了问题dequeueReusableCellWithIdentifier.一开始,没有找到可重复使用的细胞,或者什么.但我不知道为什么......

ViewController.swift中的相关代码:

// filteredWords is a [String] with zero or more items

@IBAction func editingChanged(sender: UITextField) {
    autocompleteTableView.hidden = sender.text.isEmpty
    filteredWords = dataManager.getFilteredWords(sender.text)
    refreshUI()
}

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCellWithIdentifier("Cell") as! AutocompleteTableViewCell
    cell.title.text = filteredWords[indexPath.row]
    return cell
}

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return filteredWords.count
}

func refreshUI() {
    self.autocompleteTableView.reloadData()
}
Run Code Online (Sandbox Code Playgroud)

我在github上创建了一个示例项目:

https://github.com/dirkpostma/swift-autocomplete …

uitableview ios

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

在Swift 4中初始化一个Doubles数组

我可以Int在Swift 4中初始化的数组,如下所示:

// [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
let intArray = Array(1...10)
Run Code Online (Sandbox Code Playgroud)

如果我将数组指定为的数组,Double如下所示:

let doubleArray1: [Double] = Array(1...100)
Run Code Online (Sandbox Code Playgroud)

...编译器说:

无法将“数组”类型的值转换为指定的类型“ [Double]”

如果我尝试这样做:

let doubleArray1 = Array<Double>(1...100)
Run Code Online (Sandbox Code Playgroud)

...编译器这样说...

无法为类型为'(CountableClosedRange)'的参数列表调用类型为'Array'的初始化程序

我使用使其工作map,如下所示:

// [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0]
let doubleArrayMap = Array(1...10).map{Double($0)}
Run Code Online (Sandbox Code Playgroud)

有没有一种“清洁”的方法来快速初始化一个数组而Doubles 无需map在Swift中使用

arrays swift

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

通过 DispatchGroup 与 DispatchQueue 访问主队列

我在后台线程上运行的类中使用 DispatchGroup。偶尔需要更新UI,所以调用如下代码:

dispatchGroup.notify(queue: .main) {
  self.delegate?.moveTo(sender: self, location: location)
  self.delegate?.updateLabel(sender: self, item: self.currentItem)
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,什么也没有发生。但是,如果我调用相同的代码, via DispatchQueue.main.async { },如下所示:

DispatchQueue.main.async {
  self.delegate?.moveTo(sender: self, location: location)
  self.delegate?.updateLabel(sender: self, item: self.currentItem)
}
Run Code Online (Sandbox Code Playgroud)

...委托调用完成。我在印象dispatchGroup.notify(queue: .main) { }下相当于DispatchQueue.main.async { }

为什么这些不一样?

grand-central-dispatch ios swift

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

使用 UITableViewDiffableDataSource 创建部分标题

我正在修修补补,UITableViewDiffableDataSource并且能够毫无问题地加载 tableView。我正在尝试在 tableView 中创建节标题,但是我遇到了一些奇怪的行为。

节 enum enum 定义如下:

    enum AlertLevel: String, Codable, CaseIterable {
        case green = "green"
        case yellow = "yellow"
        case orange = "orange"
        case red = "red"
    }
Run Code Online (Sandbox Code Playgroud)

这是我的实现 tableView(viewForHeaderInSection:)

    func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
        let label = UILabel()
        label.text = dataSource.snapshot().sectionIdentifiers[section].rawValue.capitalized
        label.textColor = UIColor.black

        return label
    }
Run Code Online (Sandbox Code Playgroud)

这给了我 4 个标签堆叠在我的 tableView 顶部的标题单元格中。

我启动了 Dash 到 RTFD,我看到了tableView(titleForHeaderInSection:)另一种剥猫皮的方法。所以我把这个扔进去,而不是:

    func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
        return …
Run Code Online (Sandbox Code Playgroud)

diff uitableview ios swift diffabledatasource

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