小编Jer*_*nJK的帖子

奇怪的Angular-ChartJS问题,在Ionic App中无法正确显示

我正在用AngularJS构建一个Ionic App.在这个应用程序中,我想要一个数据的折线图.昨天我问了一个关于这个问题的问题(Angular-Chart没有渲染任何内容),这个问题得到了解答,但现在又出现了一个新问题.

有时候图表会立即可见,但是当我在横向/纵向之间旋转屏幕时,它会在每次旋转时变大.有些时候图形根本不可见(图例除外),直到您旋转屏幕一段时间.

当我在iPhone上使用Web检查器检查时,我发现每次高度的HTML属性都会变大.CSS-height样式也是如此.

Web检查器中的HTML最初看起来像这样:(这是图表在非活动选项卡上的时候)

<div ng-show="graph.visible &amp;&amp; finishedLoading" class="ng-hide" style="">
  <div class="chart-container"><canvas class="chart chart-line" data="graph.data" labels="graph.labels" options="graph.options" series="graph.series" colours="graph.colours" getcolour="graph.getColour" click="graph.click" hover="graph.hover" legend="graph.legend" width="576" height="424" style="width: 288px; height: 212px;">
  </canvas><chart-legend><ul class="line-legend"><li><span style="background-color:rgba(70,191,189,1)"></span>Waarde</li><li><span style="background-color:rgba(247,70,74,1)"></span>Bovengrens</li><li><span style="background-color:rgba(253,180,92,1)"></span>Ondergrens</li></ul></chart-legend></div>
</div>
Run Code Online (Sandbox Code Playgroud)

使该选项卡激活后,其HTML如下所示:

<div ng-show="graph.visible &amp;&amp; finishedLoading" class="" style="">
  <div class="chart-container"><canvas class="chart chart-line" data="graph.data" labels="graph.labels" options="graph.options" series="graph.series" colours="graph.colours" getcolour="graph.getColour" click="graph.click" hover="graph.hover" legend="graph.legend" width="576" height="424" style="width: 288px; height: 212px;">
  </canvas><chart-legend><ul class="line-legend"><li><span style="background-color:rgba(70,191,189,1)"></span>Waarde</li><li><span style="background-color:rgba(247,70,74,1)"></span>Bovengrens</li><li><span style="background-color:rgba(253,180,92,1)"></span>Ondergrens</li></ul></chart-legend></div>
</div>
Run Code Online (Sandbox Code Playgroud)

这次图表立即可见,但情况并非总是如此.我认为这与网络检查员有关.如果我没有打开Web检查器,则最初只能看到图例.

旋转到横向并返回到肖像四次后,HTML看起来像这样:

<div ng-show="graph.visible &amp;&amp; finishedLoading" class="" style="">
  <div class="chart-container"><canvas …
Run Code Online (Sandbox Code Playgroud)

html javascript angularjs ionic-framework

10
推荐指数
1
解决办法
3515
查看次数

动态创建元素并添加onclick事件不起作用

我有一个for循环,可使用div-category1,'category2'等ID 创建-elements。循环通过键/值数组,看起来像这样:

"0" : "Java",
"1" : "JavaScript",
"2" : "HTML"
Run Code Online (Sandbox Code Playgroud)

因此,div的ID为“类别” +键。

在将元素添加到innerHTMLcontainer-div 的for循环中,我添加了onclick-event。

这是我正在谈论的for循环:

for (var key in categories) {
    categoriesBlock.innerHTML += '<div class="category" id="category' + key + '">' + categories[key] + '</div>';

    document.getElementById('category' + key).onclick = function() { showPostsForCategory(key, categories[key]); }
}
Run Code Online (Sandbox Code Playgroud)

categories上面的数组在哪里。

问题是,onclick只能用于数组中的LAST元素。如果我使用Safari调试器进行检查并输入“ category3.onclick”,则显示为空。如果我键入“ category4.onclick”(这是最后一个),它将返回正确的函数。

这怎么可能?以及如何解决呢?

html javascript arrays

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

Angular-Chart不呈现任何内容

我正在使用AngularJS构建应用程序.在这个应用程序中,我想显示一些包含一些数据的折线图.我有一个带有两个"标签"的页面.我使用了我自己的实现:顶部的两个按钮,$scope.graph.visible布尔值,通过单击这些按钮来设置.

这是HTML中的图表:

<canvas 
  data="{{graph.data}}"
  labels="{{graph.labels}}"
  options="{{graph.options}}"
  legend="{{graph.legend}}"

  ng-show="{{graph.visible}}">
</canvas> 
Run Code Online (Sandbox Code Playgroud)

在控制器中我得到了这个:

  $scope.graph.data = [1, 2, 3, 4, 5, 6, 7, 8];
  $scope.graph.labels = ['hoi', 'doei', 'hallo', 'hee', 'hoi', 'doei', 'hallo', 'hee',];
  $scope.graph.options = {
    animation: false
  };
  $scope.graph.legend = true;
Run Code Online (Sandbox Code Playgroud)

在页面的源代码中,我看到了这一点(当图表应该可见时):

<canvas data="[1,2,3,4,5,6,7,8]" labels="["hoi","doei","hallo","hee","hoi","doei","hallo","hee"]" options="{"animation":false}" series="" colours="" getcolour="" click="" hover="" legend="true" ng-show="true" class="ng-hide" style="">
</canvas>
Run Code Online (Sandbox Code Playgroud)

编辑//我想知道为什么它有这个课程 ng-hide

EDIT2 //当我手动删除ng-hide类时,我可以看到带有Web检查器的白色块.否则我甚至找不到.

EDIT3 //此外,当我添加class=""HTML文件时,它不会删除ng-hide该类.

EDIT4 // http://plnkr.co/edit/2Wr3HvMzcwfQG2tmsJgX?p=preview

javascript angularjs chart.js

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

更改全局UIBarButtonItem外观

我使用雨燕打造iOS应用程序,并想改变世界appearanceUIBarButtonItem.我这样做了didFinishLaunchingWithOptions.

Apple的文档说明了这一点:

func setTitleTextAttributes(_ attributes: [String : AnyObject]?, forState state: UIControlState)
Run Code Online (Sandbox Code Playgroud)

UIBarItem.但是当我尝试这样做时,它只是期望self: UIBarItem.有人遇到过这种情况么?这是Xcode中的错误还是我做错了什么?

uibarbuttonitem ios swift

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

提交到AppStore:发现一个意外的Mach-O头代码:0x72613c21

我建立了一个iOS应用程序,我想提交给Apple,所以我可以让我的同事测试它.我首先清理了工作区(我正在使用CocoaPods),然后将其存档.

然后我进入Archives窗口并单击"Upload to App Store".发生以下错误:"找到一个意外的Mach-O标头代码:0x72613c21",包含以下日志:

IDEDistribution.critical.log:

2016-01-07 9:23:21 AM +0000 [MT] Failed to generate distribution items with error: Error Domain=DVTMachOErrorDomain Code=0 "Found an unexpected Mach-O header code: 0x72613c21" UserInfo={NSLocalizedDescription=Found an unexpected Mach-O header code: 0x72613c21, NSLocalizedRecoverySuggestion=}
2016-01-07 9:23:21 AM +0000 [MT] Presenting: Error Domain=DVTMachOErrorDomain Code=0 "Found an unexpected Mach-O header code: 0x72613c21" UserInfo={NSLocalizedDescription=Found an unexpected Mach-O header code: 0x72613c21, NSLocalizedRecoverySuggestion=}
Run Code Online (Sandbox Code Playgroud)

IDEDistribution.standard.log:

2016-01-07 9:23:21 AM +0000 [MT] Beginning distribution assistant for archive: AppName, task: Upload
2016-01-07 9:23:21 AM +0000 [MT] Automatically …
Run Code Online (Sandbox Code Playgroud)

logging app-store ios swift

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

使用CocoaPod依赖项构建Cocoa Touch框架,不要嵌入

我有一个内置在CocoaTouch Framework中的SDK 。此SDK使用CocoaPods,因为它依赖于其他一些库。我使用以下构建脚本来构建框架:

# 1
# Set bash script to exit immediately if any commands fail.
set -e
# 2
# Setup some constants for use later on.
FRAMEWORK_NAME="MyFrameworkName"
OUTPUT_DIR="${SRCROOT}/framework/build"
# 3
# If remnants from a previous build exist, delete them.
if [ -d "${OUTPUT_DIR}" ]; then
rm -rf "${OUTPUT_DIR}"
fi
# 4
# Build the framework for device and for simulator (using
# all needed architectures).
xcodebuild -workspace "${FRAMEWORK_NAME}.xcworkspace" -scheme "${FRAMEWORK_NAME}" -configuration Release -arch arm64 -arch …
Run Code Online (Sandbox Code Playgroud)

xcode ios swift

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

使用扩展将 Swift 类扩展到多个文件

我正在 Swift 中构建一个大类,我想将它分布在多个文件中,因为它变得太大而无法有效地工作。它不能被子类化,因为它只是一个具有许多功能的类。(我也许可以稍后优化它并删除双重代码,但我仍然想实现这一点。)

为了更轻松地工作,我想使用扩展将类扩展到多个 Swift 文件中。我已经部分实现了;通过在同一文件中创建扩展来扩展基类。这没有任何问题。

假设基文件是BaseClass.Swift(和类BaseClass),我想将它扩展到BaseClassExtension.swift,我将以下内容放入BaseClassExtension.swift

extension BaseClass {
    func doStuff() -> String {
        return myVariable
    }
}
Run Code Online (Sandbox Code Playgroud)

BaseClass.swift 中,我有private var myVariable = "I am a string",但在BaseClassExtension.swift 中出现以下错误:使用未解析的标识符“myVariable”

我尝试了以下几件事:

  • 公开扩展
  • 公开 BaseClass
  • 两者都公开
  • (默认情况下,它们都是默认的(我猜是内部的?))

当我删除privatefrom 时myVariable,错误解决了,但我真的希望它是私有的,因为它可能永远不会直接从类外部访问。

xcode class ios swift2

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

execCommand()不会"解开"文本

我制作了自己的WYSIWYG文本编辑器.

contenteditable-field是一个div,请参阅下面的代码:

<div spellcheck="false" id="textEditorField" contenteditable="true"></div>
Run Code Online (Sandbox Code Playgroud)

按钮事件如下所示:

boldButton.onclick = function() {
    document.execCommand('bold', false, null); 
    return false; 
}
Run Code Online (Sandbox Code Playgroud)

短信的工作正常.它用斜体和非斜体的文字,强调作品.但是大胆地存在一个问题:它使文本变粗,但不会解开它.这适用于OS X和Windows上的每个浏览器.

我正在使用导入的自定义字体@font-face.

在css中我做了以下几点:

b {
    font-family: "Caviar Dreams Bold";
    font-weight: normal;
}
b i, i b {
    font-family: "Caviar Dreams Bold Italic";
    font-weight: normal;
}
Run Code Online (Sandbox Code Playgroud)

如果我删除该font-weight属性,文本将获得font-family"Caviar Dreams Bold"并通过CSS使其变为粗体,因此更加大胆.

有一些类似的问题,但没有我可以使用的答案.我还要注意,我不能使用jQuery.

html javascript css execcommand

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

使用 (Fastlane-) 脚本更改“目标 &gt; 常规”(不是 Info.plist)中的“应用程序图标源”

我刚刚开始使用 Fastlane 来自动部署我们的 iOS 应用程序。我们有一些白色标签(相同的应用程序,不同的样式、内容、图标等)。

使用 Fastlane,我可以在开始构建之前更改几乎所有设置(版本和构建号、启动屏幕文件等)。

我遇到困难的是应用程序图标源。我们使用图像集(AppIcon-NAME.appiconset每个应用程序一个)。请参阅下图以了解其设置位置: 在此输入图像描述

我将如何使用 Fastlane、任何其他自定义脚本或在构建阶段更改此属性?这似乎是xcodeproj.pbxproj和 中的变化Info.plist,这使得它更难找到。

谢谢。

xcode ios fastlane

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

RxDataSources tableView 具有来自一个 API 源的多个部分

目前,对于我们的 API 请求,我们使用 Rx。我们如何使用它的一个例子是:

let orderRxService = OrderRxService.listAsShop(shopId, status: .active)
    .repeatRequest(delay: 4)
    .observeOn(MainScheduler.instance)
    .subscribe( onNext: { [weak self] orders in
        self?.orders = orders
        self?.tableView.reloadData()
    })
    .disposed(by: disposeBag)
Run Code Online (Sandbox Code Playgroud)

这将获取所有shopId状态为给定的订单.active。每次更新时,都会替换本地orders对象并重新加载 tableView。

这会重新加载整个 tableView,这是我们想要避免的。我现在正在研究 RxDataSources,但无法真正弄清楚实现此功能的方法是什么。

一个Order对象有另一个属性currentStatus,它可以是 3 个不同的值。我们拥有的是一个包含 3 个不同部分的 tableView,每个部分显示currentStatus.

这应该如何在 RxDataSources 中实现?理想的情况是将其绑定到我之前展示的服务 ( OrderRxService.....subscribe()..)。

我现在要设置的 RxDataSources 类型是:

extension Order: IdentifiableType, Equatable {
    public typealias Identity = String

    public var identity: String {
        return String(id)
    }

    public static func …
Run Code Online (Sandbox Code Playgroud)

ios swift rx-swift rxdatasources

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

屏幕底部按钮:iPhone X 与普通屏幕

我正在尝试为 iPhone X 屏幕优化应用程序。目前,它在大多数屏幕上显示黑条或白条。作为示例,我将使用PaymentMethodsView.

PaymentMethodsView是一个UIView包含 1 或 2 个水平按钮的自定义StackView,superView 具有灰色背景。这StackView当前被限制为 16px 到超级视图(所有 4 个边)。目前它在 iPhone X 上看起来是这样的(在普通 iPhone 上,视图只是在屏幕底部:

在此处输入图片说明 我想在这里实现的是,灰色区域延伸到屏幕底部,而黄色区域现在位于整个视图的底部。(所以低 16px)

我可以通过使得到这个工作,Use Safe Area Layout Guide这个ViewController,制约了PaymentMethodsView中到的viewController0 to safe area在侧面,并0 to superview在底部。然后在它PaymentMethodsView本身中,我将所有StackView的约束更改为safe area而不是superview,并将底部约束更改为 0 而不是 16。这很好用,除了在普通 iPhone 上,底部 16px(在 StackView 下)消失并放置黄色按钮到屏幕底部。

我将如何解决这个问题?

  • 在 iPhone X 上:屏幕底部的灰色区域,按钮 0px 到 bottom safe area
  • 在普通 iPhone …

xcode ios swift ios-autolayout

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