我试图在仅支持横向模式的iPad应用程序中用瓷砖填充我的SKScene.在场景中我检测到h&w:
int h = [UIScreen mainScreen].bounds.size.height;
int w = [UIScreen mainScreen].bounds.size.width;
Run Code Online (Sandbox Code Playgroud)
不幸的是,发回的尺寸与他们需要的尺寸相反.在视图控制器或视图的内容中讨论此问题有很多主题,解决方案似乎是在viewWillAppear中检测屏幕大小,而不是在viewDidLoad中.但是,这似乎不是SKScenes的有效解决方案.
有什么建议?
我已经创建了自己的放大或缩小特定SKNode的解决方案,而没有缩放整个场景,它似乎主要用于我期望它如何工作,有两个值得注意的例外,我希望在这里得到输入.首先是代码(这个控制语句在touchesMoved方法中):
if (touches.count == 2) {
// this means there are two fingers on the screen
NSArray *fingers = [touches allObjects];
CGPoint fingOneCurr = [fingers[0] locationInNode:self];
CGPoint fingOnePrev = [fingers[0] previousLocationInNode:self];
CGPoint fingTwoCurr = [fingers[1] locationInNode:self];
CGPoint fingTwoPrev = [fingers[1] previousLocationInNode:self];
BOOL yPinch = fingOneCurr.y > fingOnePrev.y && fingTwoCurr.y < fingTwoPrev.y;
BOOL yUnpinch = fingOneCurr.y < fingOnePrev.y && fingTwoCurr.y > fingTwoPrev.y;
BOOL xPinch = fingOneCurr.x > fingOnePrev.x && fingTwoCurr.x < fingTwoPrev.x;
BOOL xUnpinch = fingOneCurr.x < fingOnePrev.x && fingTwoCurr.x > …Run Code Online (Sandbox Code Playgroud) 我有一个基于 Sprite Kit 的游戏,它在其中一个场景中使用 UIView,我这样做是为了可以利用 UITableViewController 来呈现游戏设置屏幕。
我遇到的困难是,当用户将他们的 iPad 系统辅助功能设置设置为使用(超)大字体时,UITableView 中的文本对于单元格来说太大了,而且看起来很傻。
我想做的是直接禁用应用程序中的动态类型,以便它始终在单元格中显示相同大小的类型。
我发现了另一个类似的帖子(这里),但响应提供了一个 Objective-C 响应:
#import <objc/runtime.h>
@implementation AppDelegate
NSString* swizzled_preferredContentSizeCategory(id self, SEL _cmd) {
return UIContentSizeCategoryLarge; // Set category you prefer, Large being iOS' default.
}
- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions {
Method method = class_getInstanceMethod([UIApplication class], @selector(preferredContentSizeCategory));
method_setImplementation(method, (IMP)swizzled_preferredContentSizeCategory);
...
}
Run Code Online (Sandbox Code Playgroud)
我需要在 Swift 中做到这一点。
在 Xcode 7+ 中的 Swift 中做同样事情的正确方法是什么?
我有以下代码:
let lootBase = Int(pow((Decimal(level + 1)), 3) * 2)
let lootMod = Int(pow(Decimal(level), 2) * 2)
value = Int(arc4random_uniform(UInt32(lootBase)) + lootMod)
Run Code Online (Sandbox Code Playgroud)
我需要成为一名Int.我尝试围绕Int()的pow计算时得到的错误是:
"无法使用Decimal类型的参数列表调用int类型的初始值设定项"
如何在Swift 3中使用int函数的pow函数?
我正在swift 3中构建一个测验应用程序,利用UITableViewController列出问题,我想要使用的是一个警报视图,用于发布问题,并提供各种答案供您选择.我让它按照我想要的方式使用一个巨大的怪癖,那就是长答案得到一个更小的字体,并通过用省略号交换答案中间的文本来截断.
如何在AlertView操作中获得自动换行的答案,并保持相同大小的字体?请注意,在某个字符长度之后在答案中手动插入"\n"是不现实的,因为问题字典中有数百个问题.
这是AlertView的代码:
func showQuestion(questionNum: Int) {
let alertTitle = "Question \(questionNum + 1)"
let qDict = test[questionNum] as! [String:String]
let alertMessage = qDict["Question"]
// create the alert
let alert = UIAlertController(title: alertTitle, message: alertMessage, preferredStyle: UIAlertControllerStyle.alert)
// add the actions (buttons)
if qDict["Option-A"] != "" {
alert.addAction(UIAlertAction(title: qDict["Option-A"], style: UIAlertActionStyle.default, handler: nil))
}
if qDict["Option-B"] != "" {
alert.addAction(UIAlertAction(title: qDict["Option-B"], style: UIAlertActionStyle.default, handler: nil))
}
if qDict["Option-C"] != "" {
alert.addAction(UIAlertAction(title: qDict["Option-C"], style: UIAlertActionStyle.default, handler: nil))
}
if …Run Code Online (Sandbox Code Playgroud) 在TFS Web界面中,我可以查询具有各种链接类型的项目:
但是,Changesets虽然在TFS中是合法且不同的链接类型,但不包含在该列表中:
使用Web界面,如何查询工作项,这些工作项是否包含Changeset类型的链接?
在iOS 7的SpriteKit框架中,我试图构建一个简单的游戏来学习框架.我稍微绊倒的一个方面是当触摸下有多个节点重叠时如何检测特定节点.让我举个例子:
在一个基本的国际象棋训练游戏中,我可以向前拖动一块瓷砖,但之后发生的事情取决于该空间中的其他节点.我想知道触摸在哪个区块上,而不管恰好在该区块节点上的任何其他节点.我遇到的问题是触摸似乎检测到最上面的节点.所以我的问题是:
检测tile节点的推荐解决方案是什么?我正在考虑以某种方式使用zPosition,但我还没有确定如何做到这一点.有什么建议?
另一种方法是检测触摸下的所有节点.有没有办法抓住所有节点并将它们放在一个数组中?
我刚刚用Xcode开发了自己的(通用)框架.当我将它导入测试项目(肯定需要我的框架的类)时,所有都运行良好 - 无论是模拟器还是真实设备(iPhone).
我已经构建了一个调试和发布版本.
在"编辑方案"下,我还在发布版本中禁用了"查看调试".
但是,当我在我的测试项目的源代码中设置一个断点时(如上所述 - 从我的框架的发布版本中获取一些信息),我仍然可以毫无问题地进入类(.m文件).
由于我想将这个框架交付给付费客户,我想阻止任何人在调试时看到我的源代码.在"构建设置"中试验几个标志没有效果......
有任何想法吗?
默认文本的颜色是什么UIButton?我正在尝试在一些表视图单元格中重新创建它但没有运气.我最接近的是:
[UIColor colorWithRed:0/255.0 green:51.0/255.0 blue:102.0/255.0 alpha:1];
Run Code Online (Sandbox Code Playgroud)
是否在任何地方记录了颜色,字体大小和样式?
在Swift中,我试图在节点的父节点上调用一个函数,如下所示:
self.parent.unhighlightAllCheckers()
Run Code Online (Sandbox Code Playgroud)
没工作.我认为这是因为子节点可能不会隐式知道父节点是什么类型的对象,所以我尝试一个显式的转换:
let myParent: Gameboard = Gameboard(self.parent)
myParent.unhighlightAllCheckers()
Run Code Online (Sandbox Code Playgroud)
也行不通.我认为这应该简单得多.你如何调用父节点的功能?
ios ×7
sprite-kit ×4
swift ×2
swift3 ×2
xcode ×2
changeset ×1
frameworks ×1
parent ×1
pow ×1
tfs ×1
uibutton ×1
uicolor ×1
uitableview ×1