我的视图中有两个不同的UIPickerView.当我将dataSource和委托设置为通过故事板托管的View时,它们工作得很好,但是当我尝试通过如下所述的代码执行此操作时,它不起作用.
两个选择器都应该有不同的数据来显示(甚至可能是委托的不同行为).因此,我想以编程方式将它们连接到不同的数据源.
我试图创建我自己的类,实现UIPickerViewDataSource-和UIPickerViewDelegate-Protocols,并将该类的对象连接到我的PickerViews,但它不起作用.在运行时抛出异常,terminating with uncaught exception of type NSException说明:
2015-01-09 17:50:05.333 Pet Stats[4953:244338] -[NSConcreteMapTable numberOfComponentsInPickerView:]: unrecognized selector sent to instance 0x7b4616d0
2015-01-09 17:50:05.338 Pet Stats[4953:244338] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSConcreteMapTable numberOfComponentsInPickerView:]: unrecognized selector sent to instance 0x7b4616d0'
Run Code Online (Sandbox Code Playgroud)
我怎样才能让它发挥作用?我错过了什么?这是我的代码:
WeightWheelController.swift
import UIKit
class WeightWheelController: NSObject, UIPickerViewDelegate, UIPickerViewDataSource {
let ElementCount: Int!
init(pickerInterval: Int) {
ElementCount = pickerInterval
}
func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> …Run Code Online (Sandbox Code Playgroud) uipickerview ios uipickerviewdatasource uipickerviewdelegate swift
问题描述:
我目前正在开发Visual Basic .NET应用程序.事实证明,我的应用程序无法在运行不同于"标准"的dpi设置的系统上正常显示(在Windows XP下为100%= 96dpi).
当我更改系统的dpi设置时,我的GUI看起来有点混乱,你可以在下面的截图中看到(因为这是一个扩展问题,屏幕截图上的文字是德语的;不好意思):
Windows XP,100%规模,96 dpi - >一切看起来像我期望的那样.

Windows XP,125%缩放比例,120 dpi - >窗口底部的按钮不再适合窗口内部.

我想要实现的目标:
如果显示比例设置为100%以外的任何值,我想在应用程序启动时立即向用户显示一个警告对话框.
题:
有没有可能读取系统的dpi值?如果是这样,那将是怎样的?似乎有一个DisplayProperties类和DisplayInformation类,但据我所知它只适用于Windows-Store-Apps.
我想知道Swift内部如何管理数组?Apple的语言指南仅处理使用情况,但没有详细说明内部结构.
作为一名Java开发人员,我习惯将"裸"数组视为非常静态和固定的数据结构.我知道在Swift中这不是真的.在Swift中,除了在Java中,您可以改变数组的长度并执行插入和删除操作.在Java中,我习惯于根据我想用该结构执行的操作来决定我想要使用的数据结构(简单数组,ArrayList,LinkedList等),从而优化我的代码以获得更好的性能.
总之,我想知道如何在Swift中实现数组.它们内部管理为(双)链表吗?是否有可与Java的Collection Framework相媲美的东西,以便调整以获得更好的性能?
在Java中我有一个interface I,一个class C和一个class D,都实现I:
interface I
{
//some method signatures
}
class C implements I
{
//implement methods from I
}
class D implements I
{
//implement methods from I
}
Run Code Online (Sandbox Code Playgroud)
现在我创建一个List持有元素class C,以及第二个List持有元素D:
List<C> c = new LinkedList<C>();
List<D> d = new LinkedList<D>();
Run Code Online (Sandbox Code Playgroud)
我有一个方法,我想应用于所有持有元素实现的列表interface I:
public void modifyList(List<I> l)
{
//call some method defined in I
}
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试调用该函数时,编译器会抛出一个错误:
public void testModification()
{
modifyList(c);
modifyList(d);
}
==> …Run Code Online (Sandbox Code Playgroud) 我想以编程方式渲染a UIImage然后在Apple Watch中显示它WKInterfaceImage,我将其设置为"相对于容器"的高度和宽度(这样它基本上占用了整个屏幕空间).我怎样才能获得WKInterfaceImage宽度和高度?据我所知,没有frame- ,border- oder layer-property我可以从我的扩展程序代码访问.那么获取这些信息的正确方法是什么?
很奇怪我发现有一个setWidth和setHeight方法,但我找不到根据getter方法.
在一天结束时,我基本上寻找与此相当的Watch Kit:
@IBOutlet weak var imageView: UIImageView!
//...
var width = imageView.frame.width
var height = imageView.frame.height
Run Code Online (Sandbox Code Playgroud) 我构建了一个简单的演示应用来测试HTML5-Audio.当你触摸或点击机器人的头部webapp的说: "EINS",这是德国的"一"(我有我的计算机上安装此音效档测试).
您可以在此处测试演示应用程序:http://jstesproject.cwsurf.de/
(备注:机器人是phonegap图标,但没有涉及phonegap或cordova技术.它是纯HTML5,Javascript(+ jQuery)和CSS.此外,你手动点击机器人的头部,所以没有涉及自动启动. )
webapp在桌面浏览器(我测试Chrome和Firefox)和Android本机浏览器(我使用Android 4.0测试)上运行良好.但是,我不能让它在iOS下工作(iPhone,既不是Chrome也不是Safari).Audio-Object会抛出错误(代码4).
为什么是这样?如何让它在iOS下运行?没有涉及自动启动.请参阅下面的代码:
码
$(document).ready(function() {
clearLog();
log('Document ready!');
$('.clickable').click(function() {
var value = $(this).html();
playAudio('res/audio/', '1.wav');
});
});
//==============
// AUDIO
function playAudio(path, src) {
log('playAudio called! Arguments: ' + path + ', ' + src);
$('#path').html('path -> ' + path);
$('#file').html('file -> ' + path + src);
if (typeof Audio != "undefined") {
log('Playing Audio using HTML5...');
var audioUrl = path + src;
log('audioUrl: ' + audioUrl); …Run Code Online (Sandbox Code Playgroud)我是UE4开发的新手,我遵循了Udemy的虚幻引擎开发课程.我在Actor上创建了一个新的Component,名为PositionReporter,标题为PositionReporter.h
#pragma once
#include "CoreMinimal.h"
#include "Components/ActorComponent.h"
#include "PositionReporter.generated.h"
UCLASS( ClassGroup=(Custom), meta=(BlueprintSpawnableComponent) )
class BUILDINGESCAPE_API UPositionReporter : public UActorComponent
{
GENERATED_BODY()
public:
// Sets default values for this component's properties
UPositionReporter();
protected:
// Called when the game starts
virtual void BeginPlay() override;
public:
// Called every frame
virtual void TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction) override;
};
Run Code Online (Sandbox Code Playgroud)
以及PositionReporter.cpp中的代码
#include "PositionReporter.h"
// Sets default values for this component's properties
UPositionReporter::UPositionReporter()
{
// Set this component to be initialized when the game …Run Code Online (Sandbox Code Playgroud) 我想向我用 Go 编写的命令行应用程序添加一个 GUI,但我遇到了 fyne 和循环依赖项的问题。
考虑这个简单的例子来说明我面临的问题:假设一个按钮触发了我的模型类上的一个耗时的方法(比如获取数据等),并且我希望视图在任务完成时更新。
我首先实现了一个非常幼稚且完全不解耦的解决方案,这显然会遇到 go 编译器引发的循环依赖错误。考虑以下代码:
主程序
package main
import (
"my-gui/gui"
)
func main() {
gui.Init()
}
Run Code Online (Sandbox Code Playgroud)
图形用户界面/gui.go
package gui
import (
"my-gui/model"
//[...] fyne imports
)
var counterLabel *widget.Label
func Init() {
myApp := app.New()
myWindow := myApp.NewWindow("Test")
counterLabel = widget.NewLabel("0")
counterButton := widget.NewButton("Increment", func() {
go model.DoTimeConsumingStuff()
})
content := container.NewVBox(counterLabel, counterButton)
myWindow.SetContent(content)
myWindow.ShowAndRun()
}
func UpdateCounterLabel(value int) {
if counterLabel != nil {
counterLabel.SetText(strconv.Itoa(value))
}
}
Run Code Online (Sandbox Code Playgroud)
模型/model.go
package model
import (
"my-gui/gui" …Run Code Online (Sandbox Code Playgroud) 现在我开始考虑我的ANDROID应用程序的本地化.我在JAVA编码,我正在使用ADT环境.该应用程序应该在完成后以德语和英语运行.我找到了很多关于如何根据设备UI访问字符串,标签图像等资源的好教程.
但是,我需要根据应用程序运行的语言在我的代码中做出DECISIONS.让我举一个简单的例子,说明我想用一些伪代码实现的(仅作为例子):
If ("language-is-german") {
start an audiostream playing a .wav-file saying "Guten morgen lieber Benutzer!!!";
Integer intErgebnis = 2 + 4;
}
Else If ("language-is-english") {
start an audiostream playing a .wav-file saying "Good morning dear user!!!";
Integer intResult = 2 + 9;
}
Run Code Online (Sandbox Code Playgroud)
基本的想法是播放不同的声音文件(我知道你也可以通过指向不同的资源来实现这一点) - 但是它们需要以不同的顺序播放等等.我添加计算只是为了告诉你我真的想要做根据用户计算机上设置的语言不同的东西.
我如何在后面的代码中检查它(即我需要输入什么而不是language-is-german上面的伪代码?
swift ×3
ios ×2
java ×2
.net ×1
android ×1
arraylist ×1
arrays ×1
c++ ×1
culture ×1
fyne ×1
generic-list ×1
generics ×1
go ×1
html5 ×1
html5-audio ×1
interface ×1
javascript ×1
jquery ×1
locale ×1
localization ×1
mobile ×1
uipickerview ×1
vb.net ×1
watchkit ×1
windows ×1