小编pab*_*sso的帖子

什么是 - [UITableViewDelegate willDisplayCell:forRowAtIndexPath:] for?

在我的所有UITableView编程中,我总是配置我UITableViewCells的 - [UITableViewDataSource tableView:cellForRowAtIndexPath:].现在我遇到了 - [UITableViewDelegate willDisplayCell:forRowAtIndexPath:]方法.这似乎也是进行单元配置的合适场所.

我的问题是:这两种方法之间适当的"分工"是什么?我应该在一对一中做什么?

iphone uitableview

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

是什么导致这个错误?"CALayer位置包含NaN:[240 nan]"

每当我旋转一个有屏幕的屏幕时,我就会看到这种情况发生UITableView.我发现它发生在willRotate和我的同事之间的didRotate方法调用之间UIViewController也见过它在其他地方,通常在旋转周围.它直到最近才开始发生,我们对如何应对它感到困惑(谷歌搜索不会以错误的形式显示错误消息).有没有其他人遇到过这个知道怎么做的事情?

iphone core-animation calayer

46
推荐指数
4
解决办法
4万
查看次数

AVPlayer在缓冲音频流的开始时"冻结"应用程序

我正在使用一个子类,AVQueuePlayer当我添加新AVPlayerItem的流媒体URL时,应用程序会冻结大约一两秒钟.通过冻结我的意思是它不响应UI上的触摸.此外,如果我已经播放了一首歌曲,然后将另一首歌曲添加到队列中,AVQueuePlayer则会自动开始预加载该歌曲,同时它仍在播放第一首歌曲.这使得应用程序不会响应UI上的触摸两秒钟,就像添加第一首歌但歌曲仍在播放时一样.所以这意味着AVQueuePlayer在主线程中做了一些导致明显"冻结"的事情.

insertItem:afterItem:用来添加我的AVPlayerItem.我测试并确保这是造成延迟的方法.也许它可能是在将它添加到队列AVPlayerItem时被激活的东西AVQueuePlayer.

必须指出我使用Dropbox API v1 beta通过使用此方法调用来获取流式URL:

[[self restClient] loadStreamableURLForFile:metadata.path];
Run Code Online (Sandbox Code Playgroud)

然后,当我收到流URL时,我将其发送到AVQueuePlayer如下:

[self.player insertItem:[AVPlayerItem playerItemWithURL:url] afterItem:nil];
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:我该如何避免这种情况?我应该在没有帮助的情况下自己预加载音频流AVPlayer吗?如果是这样,我该怎么做?

谢谢.

dropbox audio-streaming ios avplayer avqueueplayer

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

AVPlayer流式传输进度

我成功地使用AVPlayer从服务器流式传输音频,我现在要做的是显示一个UISlider显示缓冲进度的自定义.

像这样的东西:

在此输入图像描述

随着AVPlayer似乎有不被一种方式来获得总下载大小或音频文件的当前下载量,仅当前播放时间和总播放时间.

这有什么变通方法吗?

iphone ios avplayer

35
推荐指数
3
解决办法
3万
查看次数

iOS 4:背景音频的遥控器

我正在尝试为我正在为iOS 4开发的应用程序设置背景音频.该应用程序没有专用的音乐播放器viewController,但不像其他背景音频应用程序,如Pandora,这使任务更多一点混乱.

我已Info.plist正确设置了适当的设置,并AVAudioPlayer在我的应用委托中有一个对象,可以从任何地方访问.当用户播放一首歌曲时,我用一首AVAudioPlayer用歌曲初始化的新歌曲替换它并播放它.这一切都很好,除了现在我不知道如何支持远程控制事件.

根据Apple的文档,我有这个:

- (void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];
    [[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
    [self becomeFirstResponder];
}

- (void)viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];
    [[UIApplication sharedApplication] endReceivingRemoteControlEvents];
    [self resignFirstResponder];
}

- (BOOL)canBecomeFirstResponder {
    return YES;
}

- (void)remoteControlReceivedWithEvent:(UIEvent *)event {
    switch(event.subtype) {
        case UIEventSubtypeRemoteControlTogglePlayPause:
            if([iPhoneAppDelegate backgroundAudioPlayer].playing)
                [iPhoneAppDelegate pauseBackgroundAudioPlayer];
            else
                [iPhoneAppDelegate playBackgroundAudioPlayer];
            break;
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是,我在哪里放这个?Apple的文档似乎暗示这应该放在某个视图控制器的某个地方,但我的应用程序有很多视图控制器和导航控制器.无论我试图把它放在哪里,出于某种原因,在多任务托盘遥控器中点击切换播放/暂停按钮会导致歌曲暂停片刻然后取消暂停,或以某种方式使歌曲播放两次.

iphone audio avfoundation ios4

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

AVQueuePlayer的预缓冲

有没有人知道当前项目即将完成播放时是否AVQueuePlayer开始缓冲下一个AVPlayerItem

我知道文档中没有任何内容可以暗示这一点,我主要询问是否有人观察过这种行为.

iphone objective-c avfoundation avplayer

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

自定义UINavigationController UIToolbar背景图片

我有一个iPhone应用程序使用,UINavigationController并希望自定义背景图像元素.我能够UINavigationController's UINavigationBar很容易地使用Objective-C类别,如下所示:

http://foobarpig.com/iphone/uinavigationbar-with-solid-color-or-image-background.html

我想为此做同样的事情UINavigationController's UIToolbar,但同样的方法似乎不起作用(虽然我完全不知道为什么不这样做.)我环顾四周,人们似乎建议进行子类化UIToolbar,但这是不可能的对于UINavigationController's工具栏,这是一个只读的UIToolbar.我想使用UINavigationController's工具栏而不是仅仅创建一个子视图工具栏,因为我正在使用滑入式setToolbarHidden动画.

任何人都知道是否可以将背景图像应用于此UINavigationController工具栏(最有可能通过某种方式覆盖该drawRect方法)?

cocoa-touch objective-c uitoolbar uinavigationcontroller

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

使用NSStatusItem拖放

我正在尝试编写一个应用程序,允许用户从Finder中拖动文件并将其拖放到NSStatusItem.到目前为止,我已经创建了一个实现拖放界面的自定义视图.当我将这个视图添加为它的子视图时NSWindow,一切正常 - 鼠标光标给出了适当的反馈,当删除时我的代码被执行.

但是,当我使用相同的视图作为NSStatusItem's视图时,它的行为不正确.鼠标光标提供适当的反馈,表明文件可以被删除,但是当我删除文件时,我的丢弃代码永远不会被执行.

我需要做些什么特别的事情来实现拖放NSStatusItem吗?

cocoa drag-and-drop nsstatusitem

15
推荐指数
2
解决办法
4387
查看次数

如何使用带有> 1个参数的选择器调用performSelectorOnMainThread:

典型的调用performSelectorOnMainThread:看起来像这样:

[target performSelectorOnMainThread:action withObject:foo waitUntilDone:NO];
Run Code Online (Sandbox Code Playgroud)

其中"result"是传递给"action"的参数.相应的行动将是:

- (void)doSomethingWithThing1:(id *)thing1
Run Code Online (Sandbox Code Playgroud)

调用> 1参数的动作的正确语法是什么?如:

- (void)doSomethingWithThing1:(id *)thing1 andThing2(id *)thing2 andAlsoThing3(id *)thing3

[target performSelectorOnMainThread:action withObject:??? waitUntilDone:NO];
Run Code Online (Sandbox Code Playgroud)

iphone cocoa-touch selector

14
推荐指数
2
解决办法
3万
查看次数

为什么Apple不允许UINavigationController的子类化?我对子类化的替代方法是什么?

我目前正在建设一个选项卡式iPhone应用程序,其中每个选项卡的视图控制器是一个实例UINavigationController,并且其中每一个的每个子控制器UINavigationController实例是一个实例UITableViewController.理想情况下,我想子类化,UINavigationController以便每个选项卡的控制器是UINavigationController的子类(UINavigationController显然,除了具有所有标准功能外)还充当与其子控制器关联的每个表视图的数据源和委托. .试图这样做似乎打破UINavigationController了子类中的基本功能.

看到苹果公司在他们的iPhone文档中说一个人不应该是子类UINavigationController,而且当一个人做的时候事情似乎就会破裂,我想知道如何在UINavigationController's不进行子类化的情况下扩展功能,一般来说,如何解决子类化限制时的问题.做可可开发.

谢谢!

iphone cocoa-touch subclass uikit subclassing

12
推荐指数
3
解决办法
9462
查看次数