我知道在MPAndroidChart使用值格式化程序的自定义类时,可以在值等于0时隐藏y值(MPAndroidChart:在堆积条形图中隐藏0值标签).
尽管如此,我无法创建相同的类Swift 3.0或获得任何其他方式来执行此操作.我试图将自定义类"翻译" Java到Swift 3.0没有成功(我可以复制我尝试过的代码,但是它充满了错误).
当ios-chart库值等于0时,是否可以隐藏y值?
PS:我正在使用Swift 3.0.
提前致谢!
我正在尝试使用同步请求Alamofire.我查看了Stackoverflow并发现了这个问题:使异步alamofire请求同步.
我看到接受的答案用于completion使Alamofire请求同步但我无法使其工作.这是我的简化代码:
func loadData(completion: (Bool)) -> (Int, [String], [String], [String]){
Alamofire.request(url!, method: .get, parameters: nil, encoding: JSONEncoding.default, headers: nil).responseJSON { response in
switch(response.result) {
case .success(_):
if let JSON = response.result.value as! [[String : AnyObject]]!{
//Here I retrieve the data
}
completion(true)
break
case .failure(_):
print("Error")
completion(false)
break
}
}
return (numberRows, nameArray, ageArray, birthdayArray)
}
Run Code Online (Sandbox Code Playgroud)
使用此代码,我在尝试制作时遇到错误completion(bool value).我得到的错误如下:
无法调用非函数类型'Bool'的值
我尝试使用很多示例使用完成来同步获取值(因为我需要先检索数据才能在表上显示它,同时获取该表的行数)但没有成功.
如何使用该完成来获得同步响应?
提前致谢!
我做了BarChart与ios-chart库.因为它类似于MPAndroidChart我创建它们没有很多问题,但我无法在每个列的上方添加一个名称/标签.
在Android上,将值设置为BarDataSet我使用的相应值后:
BarData data = new BarData(labels, dataset);
Run Code Online (Sandbox Code Playgroud)
其中标签是每列的名称,数据集是BarDataSet.
问题是,Swift我无法找到为每列添加标签的方法.这是我目前的代码(一个简单的例子):
@IBOutlet weak var barChartView: BarChartView!
var entries = [ChartDataEntry]()
entries.append(BarChartDataEntry(x: 1.0, yValues: [1.0], label: "Monday"))
entries.append(BarChartDataEntry(x: 2.0, yValues: [4.0], label: "Tuesday"))
let charDataSet = BarChartDataSet(values: entries, label: "legend")
let charData = BarChartData(dataSets: [charDataSet])
barChartView.data = charData
Run Code Online (Sandbox Code Playgroud)
这是结果:
但是我无法将值Monday和Tuesday值放在1.04,1.12,1.20 ......值.此外,我无法在BarChartData功能上添加标签(如上Android).
我应该在哪里添加星期一和星期二的值,以显示在每列的上方?
提前致谢!
我Blockly在一个customBlocks.js文件中完成了以下块:
Blockly.Blocks['move_right'] = {
init: function() {
this.appendValueInput("PIXELS")
.setCheck("Number")
.appendField("move to right");
this.setInputsInline(true);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setColour(290);
this.setTooltip('');
this.setHelpUrl('http://www.example.com/');
}
};
Blockly.JavaScript['move_right'] = function(block) {
var value_pixels = Blockly.JavaScript.valueToCode(block, 'PIXELS', Blockly.JavaScript.ORDER_ATOMIC);
// TODO: Assemble JavaScript into code variable.
var codeMoveRight = "$(\"#moveDiv\").animate({\n " +
"left: \"+=" + value_pixels + "px\"\n" +
"},1000);\n";
return codeMoveRight;
};
Run Code Online (Sandbox Code Playgroud)
div根据您在其上设置的像素数向右移动.您将不得不在math_number块内放置一个块move_right来放置您想要移动它的像素数量.
我在我的html文件上有一个workspace注入的变量Blockly workspace:
var workspace = Blockly.inject('blocklyDiv',
{toolbox: document.getElementById('toolbox')}); …Run Code Online (Sandbox Code Playgroud) 我有一个应用程序,我有一个BarChart和一个CombinedChart但他们花了1-1.5秒,直到他们显示数据图表.
我从数据库中检索数据,而Volley正在请求获取数据,但我希望两个图表用于显示数据的时间将尽可能减少.
我想它可以通过导入的形式将库引入项目:
compile 'com.github.PhilJay:MPAndroidChart:v2.2.5'
Run Code Online (Sandbox Code Playgroud)
但我找不到任何其他方式来导入该库,或者是否正确的方法来执行此操作.也许这可能与我为此目的使用Volley的事实有关.
我该怎么做才能减少两个图表显示数据所花费的时间?它可以与我导入的表单相关吗?
任何建议将不胜感激.
提前致谢!
我正在尝试从Android执行POST请求以在我的内容中插入一些信息phpmyadmin.
我在用什么
Slim 与phpmyadmin存储的数据库建立连接和查询.Slim post函数对我没有任何问题,因为如果我POST在Postman应用程序上使用它,那么数据就会正确地插入到数据库中.
url可以接受由斜杠分隔的两个参数/.这里有一个例子:
http://localhost:8000/insert/Peter/25
Run Code Online (Sandbox Code Playgroud)
其中我在数据库中插入名为Peter且年龄为25的新用户.
当我尝试使用Volley从Android调用相同的url时出现问题,因为它始终用于onErrorResponse方法.
这是我必须使用Android的请求的代码:
RequestQueue queue = Volley.newRequestQueue(getContext());
String url = "http://localhost:8000/insert/" + name + "/" + age;
StringRequest postRequest = new StringRequest(Request.Method.POST, url,
new Response.Listener<String>()
{
@Override
public void onResponse(String response) {
Log.d("Response", "works well");
}
},
new Response.ErrorListener()
{
@Override
public void onErrorResponse(VolleyError error) {
Log.d("Response", "" + error.getMessage());
}
}
);
queue.add(postRequest);
Run Code Online (Sandbox Code Playgroud)
但它总是采用这种onErrorResponse方法.
我检查了什么
我注意到我在网址上使用的是以太网适配器IP而不是WIFI. …
我试图在:before伪元素的内容中使用svg .
为此,我正在关注这个问题:有没有办法将SVG用作伪元素中的内容:before或:after但是我无法使其工作.
我只有一个简单的SVG:
<svg height="100" width="100">
<circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="red" />
</svg>
Run Code Online (Sandbox Code Playgroud)
这是我尝试过的:
示例1:在content属性上插入svg
#square{
background-color: green;
width: 100px;
height: 100px;
}
#square:before{
display: block;
content: url("data:image/svg+xml;charset=UTF-8,<svg height='100' width='100'><circle cx='50' cy='50' r='40' stroke='black' stroke-width='3' fill='red' /></svg>");
background-size: 28px 28px;
height: 28px;
width: 28px;
}Run Code Online (Sandbox Code Playgroud)
<div id="square"></div>Run Code Online (Sandbox Code Playgroud)
示例2:使用base64编码
#square{
background-color: green;
width: 100px;
height: 100px;
}
#square:before{
display: block;
content: url("data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjEwMCIgd2lkdGg9IjEwMCI+PGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgcj0iNDAiIHN0cm9rZT0iYmxhY2siIHN0cm9rZS13aWR0aD0iMyIgZmlsbD0icmVkIiAvPjwvc3ZnPg==");
background-size: 28px 28px;
height: 28px;
width: 28px;
}Run Code Online (Sandbox Code Playgroud)
<div id="square"></div>Run Code Online (Sandbox Code Playgroud)
如您所见,这些示例中的任何一个都不起作用,所以我确信我遗漏了一些东西.
我做错了什么? …
我试图View Controllers在一个特定的两个孩子之间切换Container View.我有一个Navigation Controller菜单(Table View用于制作菜单的不同选项).
每次我点击菜单的一个选项,我想改变的孩子Container View,但我得到上面的孩子Navigation bar和Table View(未示出它们,但它们是新的子视图控制器下).
我的Main.storyboard的方案是这样的:
Navigation Controller --> View Controller (With 2 Container View, 1 for Table View
and the other to set master View Controller)
|
|
------------------------
| |
View Controller Table View
(id: master)
View Controller (id: Home) View Controller (id: screen2)
Run Code Online (Sandbox Code Playgroud)
我在tableView函数上有以下代码(我在其中检测单击菜单的选项时)来更改容器视图的子视图控制器:
let currentController = self.navigationController?.visibleViewController //container
var oldChild = (currentController?.childViewControllers.last!)! as UIViewController //master
let …Run Code Online (Sandbox Code Playgroud) uinavigationcontroller ios uistoryboardsegue uicontainerview swift
我想要的是将一个int变量传递给我AsyncTask.
int position = 5;
Run Code Online (Sandbox Code Playgroud)
我宣布我的AsyncTask是这样的:
class proveAsync extends AsyncTask<int, Integer, Void> {
protected void onPreExecute(){
}
protected Void doInBackground(int... position) {
}
.
.
.
Run Code Online (Sandbox Code Playgroud)
但我得到一个错误,它是以下内容:
类型参数不能是基本类型
我只能传递一个int[]和Integer变量,但从来没有int变量,我AsyncTask像这样执行:
new proveAsync().execute(position);
Run Code Online (Sandbox Code Playgroud)
我能做些什么来传递这个position吗?
提前致谢!
我有以下内容EditText:
<EditText
android:id="@+id/txt1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_marginTop="15dp"
android:background="@drawable/rounded_corners"
android:hint="Txt1"
android:inputType="number"
android:minLines="2"
android:text=""/>
Run Code Online (Sandbox Code Playgroud)
rounded_corners它在哪里:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<stroke
android:width="1dp"
android:color="#FFFFFFFF" />
<solid android:color="#FFFFFFFF" />
<padding
android:left="1dp"
android:right="1dp"
android:top="1dp" />
<corners android:radius="5dp"/>
</shape>
Run Code Online (Sandbox Code Playgroud)
问题是,当我添加时,我不知道如何EditText 更大(它只显示一行)inputType="number".我的意思是它可以显示多行.
我试过了什么
1)更改layout_height为match_parent.
2)向inputType属性添加值textMultiLine.
3)设置固定高度android:height.
4)正如您在上面的代码中看到的,我还添加了android:minLines属性.
5)我也试过设置一些行android:lines.
这些方法都没有解决我的问题所以任何帮助都会非常感激.
提前致谢!
android ×4
ios ×4
swift ×4
ios-charts ×2
alamofire ×1
blockly ×1
css ×1
css3 ×1
java ×1
javascript ×1
slim ×1
svg ×1
synchronous ×1