iOS自动布局:等同的空间,以适应Superviews宽度

可能重复: Autolayout甚至间距 我试图创build一个滚动条与button(类似于UISegmentedControl )。 superview是一个UIScrollView 。 只要button不适合滚动视图,滚动视图应滚动。 到目前为止,几乎一切工作正常: 有很多button(向右滚动): 没有那么多button: 现在,我的目标是,如果所有button都有空间,它们应该在整个320px视图中均匀分布。 我怎样才能定义button之间的空间约束? 现在,我使用以下约束(self是一个UIScrollView ): UIView *firstButton = self.buttons[0]; [self.buttonConstraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"|-(5)-[firstButton]" options:0 metrics:nil views:NSDictionaryOfVariableBindings(firstButton)]]; UIView *lastButton = [self.buttons lastObject]; [self.buttonConstraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"[lastButton]-(5)-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(lastButton)]]; UIView *previousView = nil; for (UIView *view in self.buttons) { if (previousView) { [self.buttonConstraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"[previousView]-(5)-[view]" options:0 metrics:nil views:NSDictionaryOfVariableBindings(previousView, view)]]; […]

自定义MKAnnotationView与框架,图标和图像

我一直在寻找一个类似的解决scheme,如何devise一个像这样的自定义MKAnnotationView。 我分类了MKAnnotation,我能够添加一个名为F.png的图像F.png是一个帧图像,如图所示。 我想要的是添加一个内部图像。 (我画的彩色蓝色) – (MKAnnotationView *)mapView:(MKMapView *)theMapView viewForAnnotation:(id <MKAnnotation>)annotation { if ([annotation isKindOfClass:[MKUserLocation class]]) return nil; static NSString* AnnotationIdentifier = @"AnnotationIdentifier"; MKAnnotationView *annotationView = [mapView dequeueReusableAnnotationViewWithIdentifier:AnnotationIdentifier]; if(annotationView) return annotationView; else { MKAnnotationView *annotationView = [[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:AnnotationIdentifier]; annotationView.canShowCallout = YES; annotationView.image = [UIImage imageNamed:[NSString stringWithFormat:@"F.png"]]; UIButton* rightButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure]; [rightButton addTarget:self action:@selector(writeSomething:) […]

如何解决在这个区块强烈的“捕捉”区块可能会导致一个保留周期“

我正在处理这个代码,它在网上做了一些冗长的asynchronous操作,当它完成时,它会触发一个完成块,在那里执行一些testing,如果一个variables获得了一个特定的值,另一个冗长的操作应该立即开始: -(void) performOperation { void(^completionBlock) (id obj, NSError *err, NSURLRequest *request)= ^(id obj,NSError *err, NSURLRequest *request){ int variable=0; // Do completion operation A //… //… // Do completion operation B //Get the variable value if(variable>0){ [self doLengthyAsynchronousOperationWithCompletionBlock: completionBlock]; } }; //Perform the lenhgty operation with the above completionBlock [self doLengthyAsynchronousOperationWithCompletionBlock: completionBlock]; } -(void) doLengthyAsynchronousOperationWithCompletionBlock: completionBlock […]

使核心数据线程安全

长话短说,我厌倦了与NSManagedObjectContext相关的荒谬的并发规则(或者说,它完全不支持并发性,倾向于爆炸或做其他不正确的事情,如果你试图跨线程共享一个NSManagedObjectContext ),我试图实现一个线程安全的变体。 基本上我所做的是创build一个跟踪它创build的线程的子类,然后将所有方法调用映射回该线程。 这样做的机制有点复杂,但其关键是我有一些帮助方法,如: – (NSInvocation*) invocationWithSelector:(SEL)selector { //creates an NSInvocation for the given selector NSMethodSignature* sig = [self methodSignatureForSelector:selector]; NSInvocation* call = [NSInvocation invocationWithMethodSignature:sig]; [call retainArguments]; call.target = self; call.selector = selector; return call; } – (void) runInvocationOnContextThread:(NSInvocation*)invocation { //performs an NSInvocation on the thread associated with this context NSThread* currentThread = [NSThread currentThread]; […]

模态视图与导航控制器

仍然无法弄清楚我做错了什么。 试图用导航控制器获取模态视图。 这是我的项目http://www.matthewpateman.com/New.zip 有谁可以告诉我我做错了什么? 我想要“ShopModalView.xib”在导航控制器中popup,但它只是一个空白页面…

YouTube上的video播放在iOS6上破解(在iOS5上正常工作)

在我的应用程序中,我有一个button,当按下它时,可以让您观看YouTubevideo(电影预告片)。 在应用程序内,不用启动Safari。 下面你可以看到一个代码片段。 这个代码可以在iOS5下正常工作。 但是,在iOS 6中,findButtonInView中的UIButton始终为零。 任何想法可能是什么原因? youtubeWebView.delegate = self; youtubeWebView.backgroundColor = [UIColor clearColor]; NSString* embedHTML = @" <html><head> <style type=\"text/css\"> body {background-color: transparent; color: white; }</style></head><body style=\"margin:0\"><embed id=\"yt\" src=\"%@?version=3&app=youtube_gdata\" type=\"application/x-shockwave-flash\"width=\"%0.0f\" height=\"%0.0f\"></embed></body></html>"; NSURL *movieTrailer; if(tmdbMovie) movieTrailer = tmdbMovie.trailer; else movieTrailer = [NSURL URLWithString:movie.trailerURLString]; NSString *html = [NSString stringWithFormat:embedHTML, movieTrailer, youtubeWebView.frame.size.width, youtubeWebView.frame.size.height]; [youtubeWebView loadHTMLString:html baseURL:nil]; [self […]

与RestKit(iOS)一起使用force_load链接器标志

我正在使用Facebook iOS SDK,AWS iOS SDK和RestKit。 为了使Facebook和AWS发挥不错(有重复的符号),我不得不改变我的其他链接器标志为-force_load facebook-ios-sdk/lib/facebook-ios-sdk/libfacebook_ios_sdk.a 。 现在,我运行我的应用程序时,得到了与RestKit相关的错误: 2012-06-28 15:55:15.336 MyApp [1640:707] – [__ NSCFString isIPAddress]:无法识别的select器发送到实例0x35f440 2012-06-28 15:55:15.338 MyApp [1640:707] *由于未捕获exception'NSInvalidArgumentException',原因:' – [__ NSCFString isIPAddress]:无法识别的select器发送到实例0x35f440' 我不能使用-ObjC和all-load链接器标志,因为这阻止了我与Facebook和AWS构build。 有谁知道我应该如何设置我的链接器标志,以便我可以使用所有3(FB,AWS,RestKit)在一起? 谢谢!

iOS上的RTMPstream

我必须做一个iOS应用程序,从相机播放实时videostream。 我知道iPhone只支持Live HTTPstream,但不幸的是,它延迟了大约6-10秒,这远离我的需求 – 我需要一个实时视图。 MJPEGstream也不是一个选项,因为它会产生巨大的stream量。 所以现在还有一个RTMPstream,但是iOS本身不能播放:((我听说过用于iPhone的rtmpdump,但是我无法工作,有没有人成功地在iOS上播放RTMPvideo?不胜感激!

如何使用不可更新的应用程序内购买来支持多种设备?

我正在构build一个iOS应用程序,其中将包含一个具有不续订订阅的IAP。 苹果公司在IAP的概述中提供了这个块头: 您需要向用户拥有的所有设备提供不续订订阅。 非续订订阅不会通过Store Kit自动同步到所有设备; 你必须自己实施这个基础设施。 例如,大多数订阅由外部服务器提供; 您的服务器将需要实现一种机制来识别用户,并将订购购买与购买它们的用户相关联。 我想遵循这个规则:我希望我的用户能够利用他们在其他设备上的一个设备上购买的订阅。 那么我怎样才能在他们的iPhone和iPad上识别同一个用户呢? 我知道你不能使用Apple ID,也不能依赖注册方法。 我刚才发现这个问题 , 那里给出的答案似乎不可行。 必须有别人所做的更优雅的事情。

如何在iOS 7锁屏上设置当前的播放时间和播放时间?

从iOS 5开始,每个音乐播放器都可以在[MPNowPlayingInfoCenter defaultCenter] .nowPlayingInfo上设置当前正在播放的音乐信息,如标题,艺术家,专辑标题和插图,以在locking屏幕上显示。 在iOS 7上,播放位置滑块,持续时间和已用时间信息将同时添加到locking屏幕和控制中心。 但是,我找不到任何文档来设置这些types的信息,并启用滑块来改变播放位置。 有什么办法可以解决这个问题吗?