我正在使用IBOutletCollections来分组几个类似UI元素的实例.特别是我将一些UIButton(类似于测验游戏中的蜂鸣器)和一组UILabels(显示分数)组合在一起.我想确保按钮上方的标签更新分数.我认为通过索引访问它们是最容易的.不幸的是,即使我以相同的顺序添加它们,它们并不总是具有相同的索引.Interface Builder中是否有一种方法可以设置正确的顺序.
我尝试扩展cocos2d的SimpleAudioEngine的功能,能够一个接一个地播放几种音效作为某种链.我尝试使用扩展程序执行此操作.但是我现在意识到我可能还需要一个iVar来记住所有声音文件的名称,还有一个要记住当前播放的声音.
但似乎我无法在类别中添加iVars.相反,我尝试使用扩展,但似乎它们需要在类的原始.m文件中,这样也无法工作.还有另一种方式,允许我这样做吗?
带有类别的标题
#import <Foundation/Foundation.h>
@interface SimpleAudioEngine(SoundChainHelper)<CDLongAudioSourceDelegate>
-(void)playSoundChainWithFileNames:(NSString*) filename, ...;
@end
Run Code Online (Sandbox Code Playgroud)
和.m文件扩展名为:
#import "SoundChainHelper.h"
@interface SimpleAudioEngine() {
NSMutableArray* soundsInChain;
int currentSound;
}
@end
@implementation SimpleAudioEngine(SoundChainHelper)
// read in all filenames and start off playing process
-(void)playSoundChainWithFileNames:(NSString*) filename, ... {
soundsInChain = [[NSMutableArray alloc] initWithCapacity:5];
va_list params;
va_start(params,filename);
while (filename) {
[soundsInChain addObject:filename];
filename = va_arg(params, NSString*);
}
va_end(params);
currentSound = 0;
[self cdAudioSourceDidFinishPlaying:nil];
}
// play first file, this will also always automatically be called as soon as the previous …
Run Code Online (Sandbox Code Playgroud) 我想用Button 触发CAAnimation.在游乐场和模拟器中,这完全符合我的要求.但是,当我在设备上运行相同的代码时,动画仅在短暂延迟后发生.
显然,这个问题只发生在iOS 11.2.6上.我更新了我的设备,现在无法重现该问题.任何人都可以确认或了解它如何在iOS 11.2.6上运行?
import UIKit
class MyViewController : UIViewController {
let animatedView = UIView()
override func loadView() {
let view = UIView()
view.backgroundColor = .white
// Add a button
let button = UIButton(type: .system)
button.frame = CGRect(x: 150, y: 200, width: 200, height: 50)
button.setTitle("Animate", for: .normal)
button.addTarget(self, action: #selector(tap), for: .touchUpInside)
// Set color and frame of the view, that is animated.
animatedView.backgroundColor = UIColor.blue
animatedView.frame = CGRect(x: 50, y: 50, width: 50, height: 50) …
Run Code Online (Sandbox Code Playgroud) 我想创建一个SKLabelNode,它应该总是具有相同的长度(对于单词猜谜游戏).不幸的是,SKLabelNode决定始终切断任何前导和尾随空格.文档中未描述此行为.如何避免/关闭该行为?
我想检测[SimpleAudioEngine sharedEngine]当前是否正在播放任何效果.对于背景音乐,有一种方法可以为您提供背景音乐是否正在播放的信息:
[[SimpleAudioEngine sharedEngine] isBackgroundMusicPlaying];
Run Code Online (Sandbox Code Playgroud)
音效有类似之处吗?如果不是,我怎么能检测到我是否已经在效果?
假设我想创建一个非常简单的 todolist RESTful API,其中每个用户都拥有一个 todos 列表。用户已通过 http BASIC 或 DIGEST 进行身份验证。
在这一点上,我不确定 URL 方案应该是什么样子。可不可能是:
http://servername/todos/
Run Code Online (Sandbox Code Playgroud)
我的服务器根据 http 标头给我的身份验证过滤适当的待办事项。
或者我应该在 URI 中包含用户名:
http://servername/users/username/todos/
Run Code Online (Sandbox Code Playgroud)
在一些网站上,我什至看到他们将用户名作为这样的参数传递:
http://servername/todos?username=babsi
Run Code Online (Sandbox Code Playgroud)
据我所知,所有三个选项都是无状态的,因为我总是收到用户名,但只是来自不同的来源。据我所知,为了确保正确的用户访问了 URI,我总是需要检查 http 标头。那么,您认为 REST 中最好的 URI 设计是哪一种,还是我应该以完全不同的方式来做?
我想在UITextView中添加圆角矩形,如何如何将UITextview设置为像Rounded Rect文本字段一样?.但是,当我这样做时,我收到一条错误消息,指出找不到那里使用的方法.我认为这很奇怪,因为它们仍然在文档中.另一方面,XCode在字段图层上没有显示自动填充中的任何内容.这个字段是以某种方式被弃用还是可能出现问题?
这里是我使用的两个代码片段:
@interface AddItemViewController : UIViewController {
IBOutlet UITextView *detailsTextView;
}
@end
Run Code Online (Sandbox Code Playgroud)
Hier将ich dann死于Eigenschaften aendern.
- (void)viewDidLoad
{
[super viewDidLoad];
// add rounded rects to detailsTextView
//first leads to warning that method is unknown
[detailsTextView.layer setCornerRadius:8.0f];
// displays error that property is not found on object of type CALayer *
textView.layer.cornerRadius = 8.0f;
detailsTextView.clipsToBounds = YES;
}
Run Code Online (Sandbox Code Playgroud) 我使用jni创建了一个Android项目.现在我想使用预处理器宏来区分lite和完整版本.它应该如下所示:
#ifdef LITE
auto label = LabelTTF::create("Hello Cocos2dx Lite", "Arial", 24);
#else
auto label = LabelTTF::create("Hello Cocos2dx Full", "Arial", 24);
#endif
Run Code Online (Sandbox Code Playgroud)
为此,我在Android.mk中的APP_CPPFLAGS中定义了一个变量,如下所示:
APP_CPPFLAGS += -DLITE
Run Code Online (Sandbox Code Playgroud)
不幸的是,应用程序完全忽略它,我仍然看到标签"Hello Cocos2dx Full".但是,当我将它放在Application.mk中时,同一行也可以工作.
java-native-interface android preprocessor makefile android-ndk
objective-c ×4
ios ×3
iphone ×2
android ×1
android-ndk ×1
calayer ×1
iboutlet ×1
makefile ×1
preprocessor ×1
quartz-core ×1
rest ×1
sklabelnode ×1
sprite-kit ×1
swift ×1
xcode ×1