ios - 使用 GameKit 将 UISlider 的移动值从一台设备发送到另一台设备

标签 ios gamekit

我正在寻找使用蓝牙将 UISlider 的移动值从一台设备发送到另一台设备的示例代码。我能够将文本和图像从一台设备发送到另一台设备。但现在,我想做发送 slider 值。如果我移动 slider 比同一位置也会在另一个设备中移动..

最佳答案

您需要有一个方法将 slider 的值转换为 NSNumber 或 NSString,然后以相同的方式发送它。

所以你会:

[slider addTarget:self action:@selector(sliderMoved:) forControlEvents:UIControlEventValueChanged];

然后在你的 sliderMoved 中:

-(void)sliderMoved:(UISlider *)slider {
    NSNumber *number = [NSNumber numberWithInt:(int)slider.value];
    // or
    NSString *string = [NSString stringWithFormat:@"%i",(int)slider.value];
    //Then you would want to send it to the other device.
}

如果您想要 slider 的完整浮点值,也可以不将它们转换为整数。

在这种情况下,您可以使用:

[NSNumber numberWithFloat:slider.value];
// or
[NSString stringWithFormat:@"%f",slider.value];

在其他设备上收到此值后,将其转换回 float 并设置该设备的 slider 值:

float f = [newValue floatValue];
[slider setValue:f animated:YES/NO];

关于ios - 使用 GameKit 将 UISlider 的移动值从一台设备发送到另一台设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15516263/

相关文章:

ios - 触摸移动有问题

ios - 在 Swift 中将字节数组转换为 UIImage

iphone - 在运行同一应用程序的两个 iOS 设备之间传输对象的最佳方式是什么?

swift - Tap Gesture 和 TouchesBegan 在 View 中产生不同的位置

iphone - 通过游戏中心共享保存的游戏数据?

ios - GKTurnBasedMatch 如何接受新的比赛邀请

ios - 在播放视频组合时调整 AVSynchronizedLayer 中的 CALayers 大小

ios - 无法识别的选择器发送到自定义对象上的实例

javascript - iOS Safari css 位置在 textarea 聚焦时固定

objective-c - GameKit 与 GKMatchSendDataReliable 的通信是否可靠?