小编Kev*_*ers的帖子

当触发UIButton时,如何获得touchesBegan坐标?

我有一个touchesBegan方法设置为在用户触摸屏幕时拾取坐标.它很有效,除非我触摸UIButton.如何使按钮触发touchesBegan方法呢?

iphone objective-c ipad ios

22
推荐指数
1
解决办法
2万
查看次数

iOS - AVAudioPlayer在后台播放时不会继续播放下一首歌曲

所以我有一个应用程序播放一堆歌曲,而用户可以浏览漫画书.我使用AVAudioPlayer,我将它设置为按设定顺序播放歌曲.所以当一首歌结束时,下一首歌将播出.当应用程序打开时,这可以完美运行.当应用程序在后台时出现问题.我将应用程序设置为在后台播放,并且工作正常.因此,当用户按下主屏幕时,音乐继续播放.当歌曲结束时会出现问题,假设播放应用程序打开时播放下一首歌曲.相反没有任何反应 根据我的NSLog语句,正在调用正确的方法,但没有任何反应.这是我的代码:

- (void)audioPlayerDidFinishPlaying: (AVAudioPlayer *)player successfully: (BOOL) flag {

NSLog(@"Song finished");

if ([songSelect isEqualToString: @"01icecapades"]) {
    isPlay = @"yes";
    songSelect = @"02sugarcube";
    imageSelect = @"playbanner02";
    [self performSelector:@selector(triggerSong) withObject:nil afterDelay:0];
    [self performSelector:@selector(triggerBanner) withObject:nil afterDelay:0];
}
else if ([songSelect isEqualToString: @"02sugarcube"]) {
    isPlay = @"yes";
    songSelect = @"03bullets";
    imageSelect = @"playbanner03";
    [self performSelector:@selector(triggerSong) withObject:nil afterDelay:0];
    [self performSelector:@selector(triggerBanner) withObject:nil afterDelay:0];
}
else if ([songSelect isEqualToString: @"03bullets"]) {
    isPlay = @"yes";
    songSelect = @"04satanama";
    imageSelect = @"playbanner04";
    [self performSelector:@selector(triggerSong) withObject:nil afterDelay:0];
    [self performSelector:@selector(triggerBanner) …
Run Code Online (Sandbox Code Playgroud)

background touch avaudioplayer ios avaudiosession

10
推荐指数
2
解决办法
7962
查看次数

格式化浮点数以显示在两位数的字符串中?

NSString *timerend = [[NSString alloc] initWithFormat:@"%.0f:%.0f:%02d", hours, minutes, seconds];
Run Code Online (Sandbox Code Playgroud)

所以我有这个字符串和一堆浮点数.例如,假设秒= 6.54.它将显示为.我希望它显示为06.54.反正有吗?非常感谢任何帮助.

iphone floating-point ios

7
推荐指数
1
解决办法
1万
查看次数

当我在视图之间来回切换时,我的viewDidLoad第二次没有被调用?

所以我有两个观点.启动应用程序时会加载一个视图.然后,当我按下该视图上的按钮时,它会加载另一个视图.

- (IBAction)triggerGame
{

leveldata = [[NSMutableDictionary alloc] init];

[leveldata setValue:@"hide" forKey:@"shootarrow"];

[leveldata writeToFile:[self levelFilePath] atomically:YES];
[leveldata release];


Papertoss_MaraAppDelegate *mainDelegate = (Papertoss_MaraAppDelegate *)[[UIApplication sharedApplication] delegate];
[mainDelegate playGame];

}
Run Code Online (Sandbox Code Playgroud)

此操作在委托实现中触发一个名为playGame的方法,如下所示:

- (void)playGame {

[levelView.view removeFromSuperview];
[self.window addSubview:[gameView view]];
[UIView commitAnimations];
}
Run Code Online (Sandbox Code Playgroud)

这样可以很好地加载新视图.然后我有另一个按钮做同样的事情,但它让我回到第一个视图.而且它也很棒.我能够非常轻松地从一个视图导航到另一个视图.但我唯一的问题是,当我第二次尝试加载第二个视图时,不会再次调用viewDidLoad.我通过在viewDidLoad方法中使用NSLog()来测试它.

为了我的应用程序做我想要的,我需要再次调用viewDidLoad.我猜我在他们之间切换时可能没有完全卸载我的视图.

任何帮助是极大的赞赏.

iphone cocoa-touch uikit viewdidload ipad

6
推荐指数
1
解决办法
797
查看次数

AudioKit - 绘制文件的完整波形

我一直在阅读文档寻找答案.我看到AudioKit可以在录制或播放时实时绘制波形,但我想知道你是否可以加载文件并完全绘制波形,这样我就可以看到整个文件的波形而无需回放.

任何帮助将不胜感激.甚至只是指向我应该查看的对象的指针.

waveform swift audiokit

5
推荐指数
1
解决办法
1990
查看次数

触摸CALayer时触发动作?

所以我一直在寻找,我还没有找到我想要的东西.

我有一个视图,然后是该视图的子视图.在第二个视图中,我根据我给它的坐标创建CALayers.我想能够触摸任何这些CALayers并触发一些东西.

我发现了不同的代码片段,看起来可以提供帮助,但我无法实现它们.

例如:

-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { if ([touches count] == 1) { for (UITouch *touch in touches) {

CGPoint point = [touch locationInView:[touch view]]; point = [[touch view] convertPoint:point toView:nil];

CALayer *layer = [(CALayer *)self.view.layer.presentationLayer hitTest:point];

layer = layer.modelLayer; layer.opacity = 0.5;

} } } 
Run Code Online (Sandbox Code Playgroud)

还有......

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {

    UITouch *touch = [touches anyObject];

    // If the touch was in the placardView, bounce it back to the center
    if ([touch view] == placardView) { …
Run Code Online (Sandbox Code Playgroud)

views calayer ipad ios

3
推荐指数
1
解决办法
7912
查看次数

Swift iOS - 使用 PDFKit 和 UI 将文本覆盖到 PDF 上

我正在 Swift 5 和 iOS 上工作。我正在尝试将文本覆盖到我当前拥有的 PDF 上。我本质上是在移植从 macOS 应用程序编写的代码。这是Mac版本的代码:

func executeContext(at srcURL: URL, to dstURL: URL) {
    
    // Confirm there is a document there
    if let doc: PDFDocument = PDFDocument(url: srcURL) {
        
        // Create a document, get the first page, and set the size of the page
        let page: PDFPage = doc.page(at: 0)!
        var mediaBox: CGRect = CGRect(x: 0, y: 0, width: 792, height: 612)
        
        // This is where the magic happens.  Create the drawing context on the PDF …
Run Code Online (Sandbox Code Playgroud)

pdfkit ios uigraphicscontext swift swift5

3
推荐指数
1
解决办法
2273
查看次数