小编col*_*fet的帖子

React Native:确定Text组件的行数

正如标题所说,我一直试图找到一种方法来确定文本组件在给出文本之后的行数.看看下面的例子.

<Text>
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi semper ut ipsum in ultrices. Vivamus fringilla lacinia odio in accumsan. Proin sit amet pellentesque tortor. Nam mollis sit amet ligula id convallis. Etiam in semper diam. Cras id elit consectetur, interdum ante id, tincidunt nisi. Integer non elit placerat, dignissim nibh at, faucibus sem. Curabitur nec posuere turpis. Vivamus rhoncus nulla vitae mi imperdiet, elementum eleifend mi laoreet. Vestibulum molestie turpis non nibh elementum, sed ornare magna tristique. …
Run Code Online (Sandbox Code Playgroud)

android text ios react-native

15
推荐指数
3
解决办法
8116
查看次数

查看控制器TDD

我试图在我的项目中添加一些单元测试来测试视图控制器.但是我似乎遇到了看似简单的问题.我已经创建了一个示例项目,我将参考该项目.https://github.com/pangers/ViewControllerTesting

该示例包含一个UINavigationController作为初始视图控制器.UINavigationController的根视图控制器是FirstViewController.FirstViewController上有一个按钮,它可以切换到SecondViewController.在SecondViewController中有一个空文本字段.

我想添加的两个测试是:
1)FirstViewController中的检查按钮标题是"下一屏幕".
2)检查SecondViewController中的文本字段是否为空,"".

我听说有关将swift文件添加到主目标并且测试目标不是好习惯的报告.但是,最好在公共测试中创建您想要访问的任何内容,并将主目标导入测试中.这就是我所做的.(我还将主要目标的"定义模块"设置为YES,因为这是我在几篇文章中所读到的).

在FirstViewControllerTests中,我使用以下代码实例化了第一个视图控制器:

var viewController: FirstViewController!

override func setUp() {
    let storyboard = UIStoryboard(name: "Main", bundle: NSBundle(forClass: self.dynamicType))
    let navigationController = storyboard.instantiateInitialViewController() as UINavigationController
    viewController = navigationController.topViewController as FirstViewController
    viewController.viewDidLoad()
}
Run Code Online (Sandbox Code Playgroud)

我添加了测试:

func testCheckButtonHasTextNextScreen() {
    XCTAssertEqual(viewController.button.currentTitle!, "Next Screen", "Button should say Next Screen")
}
Run Code Online (Sandbox Code Playgroud)

同样,对于SecondViewControllerTest,我使用以下方法进行设置:

var secondViewController:SecondViewController!

override func setUp() {
    let storyboard = UIStoryboard(name: "Main", bundle: NSBundle(forClass: self.dynamicType))
    let navigationController = storyboard.instantiateInitialViewController() as UINavigationController
    let firstviewController = navigationController.topViewController as FirstViewController
    firstviewController.performSegueWithIdentifier("FirstToSecond", sender: nil)
    secondViewController …
Run Code Online (Sandbox Code Playgroud)

tdd unit-testing uiviewcontroller ios swift

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

React Native - 设置TextInput游标位置

在我的React Native应用程序中,我正在尝试将a的光标位置设置TextInput为特定位置(例如,设置为第5个字符),但由于文档缺少一点,我很难这样做.我怀疑它与'setSelection'属性有关,TextInput但我似乎无法找到该做什么.

有没有人成功这样做过?

谢谢.

android ios react-native

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

在React Native中滚动到ScrollView的底部

我想找到一种以编程方式滚动到scrollView底部的方法.在查看ScrollView的源代码后,我知道了scrollTo方法,但是我似乎无法找到一种方法来测量scrollView的内容大小.

环顾四周后,我遇到了这个 github问题,提到了如何使用"UIManager.measureX方法"来衡量内容大小.但是,在通过源代码搜索几次之后,我似乎无法找到使用这些方法的位置.

有人能指出我正确的方向吗?

react-native

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

React Native - 在AppDelegate(iOS)中将事件从Native发送到JavaScript

在我的React本机应用程序中,我正在尝试将本地代码中的事件发送到AppDelegate中的JavaScript.为此,我打电话给:

[self.bridge.eventDispatcher sendAppEventWithName:@"EventReminder"
                                           body:@{@"name": eventName}];
Run Code Online (Sandbox Code Playgroud)

在我的应用代表中.当然要做到这一点我需要导入:

导入"RCTBridge.h"

导入"RCTEventDispatcher.h"

并合成桥梁

@synthesize bridge = _bridge;
Run Code Online (Sandbox Code Playgroud)

但是在此之后的事件中,桥变量不存在.为了使这个错误消失,我使我的AppDelegate符合RCTBridgeModule协议,如下所示:

AppDelegate : UIResponder <UIApplicationDelegate, RCTBridgeModule>
Run Code Online (Sandbox Code Playgroud)

然后在我的AppDelegate.m中,我做了:

RCT_EXPORT_MODULE()
Run Code Online (Sandbox Code Playgroud)

毕竟我的桥终于没有错误,但每次我在AppDelegate中使用它,它都是零.

我哪里错了?

提前致谢.

javascript ios react-native

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

用RxJS反应原生

我正在使用React Native和RxJS,直到现在,只要我订阅了一个我一直在做的观察:

observable.subscribe(() => {
     this.setState({ loading: true });
}.bind(this));
Run Code Online (Sandbox Code Playgroud)

但是自从我升级到React Native 0.16.0后,无论我在使用ES2015箭头符号声明的内联函数上执行bind(this),React Native都会将其作为错误进行选择.但是,当我将箭头符号更改回ES5常规函数表示法时,如下所示:

observable.subscribe(function() => {
    this.setState({ loading: true });
}.bind(this));
Run Code Online (Sandbox Code Playgroud)

错误似乎消失了.

这里发生了什么?

android ios rxjs react-native

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

在 TestFlight 上测试应用内购买

我正在尝试在 TestFlight 上测试应用内购买,但有些事情我不清楚。

我已经创建了我的应用内购买产品,它们的状态是“准备提交”。但是,在屏幕顶部,它显示“您的第一个应用内购买必须与新的应用版本一起提交。从应用的应用内购买部分中选择它,然后单击提交。”

因此,当我单击顶部的“App Store”选项卡,然后在“iOS App”副标题下单击“1.0 准备提交”。我被带到我填写应用程序的应用程序商店信息的屏幕上,就像我要将应用程序上传到应用程序商店一样。有一些输入供我填写描述、关键字、屏幕截图、应用程序图标等。我还看到了我可以添加一些应用程序内购买的部分,这就是我认为上一条消息“你的第一个应用程序内购买”的意思购买必须与新的应用程序版本一起提交。从应用程序的应用程序内购买部分选择它,然后单击提交。” 在这里,我可以为我的第一次提交选择我的 IAP 产品。

我的问题是这样的:

1) 我还不想真正将该应用程序放在 App Store 上。我只想和我的测试人员一起在 TestFlight 上测试 IAP。我假设我需要在提交应用程序以供审核时单击“手动发布此版本”单选按钮才能发生这种情况?或者我打算以另一种方式做到这一点?

2) 由于我需要填写说明、截图等,听起来应用程序基本上需要完成才能提交审核。我可以在这里添加一些虚拟描述和屏幕截图吗?或者应用程序真的需要处于接近完成状态只是为了测试应用程序内购买?

感谢您的回复。

testing app-store in-app-purchase ios testflight

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

SwiftyJSON字典解析

我试图使用SwiftyJSON来解析服务器中的一些数据.

例如,假设从服务器返回的JSON是:

{     
 "data":{  
     "id":"92",
     "name":"harry",
     "username":"Hazza"
   },
 "error":false
}
Run Code Online (Sandbox Code Playgroud)

我想获取用户名字符串,所以为此我使用以下方法获取数据对象:

let data = json["data"].dictionaryValue
Run Code Online (Sandbox Code Playgroud)

然后为了获取我希望能够做的用户名字符串

let username = data["username"].stringValue
Run Code Online (Sandbox Code Playgroud)

但是,这会返回一个错误,说'(String,JSON)没有名为'.stringValue'的成员.

这个看似简单的问题在哪里出错了?

谢谢.

json ios swifty-json

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