在我的UITableView设置中使用Storyboard,我需要能够添加一个粘贴到视图底部的工具栏,它不应该滚动.
不同于这个问题:LINK我不认为我可以将TableView子视图添加到普通视图,然后只是以编程方式添加工具栏,因为我使用的动态单元看起来更容易通过Storyboard进行集成.
就目前而言,这就是我所困扰的......

我需要在我的应用程序中添加雨粒子效果,我一直很难找到实际执行这个想法的方法.
我尝试按照这个CALayer方法教程:链接, 但我不太确定这是否是最好的方法,考虑到Xcode 5中提供的新的iOS 7 SpriteKit粒子发射器.
我已经创建了.sks文件并且它在我的层次结构中,但我仍然无法将其添加到我的故事板/项目中.
话虽如此,我究竟如何在我的视图中添加SpriteKit粒子(sks)?我对SpriteKit框架中的场景,分层等并不熟悉,因为我不是游戏开发人员.我需要尽可能多的细节和示例代码,以便我能够解决这个问题
更新:我已按照SO成员答案中提供的指示:AyatollahAndy,请参阅下面的答案.虽然我能够SKScene在view收到任何触摸事件时显示我的应用程序崩溃.我得到以下内容:
谢谢
Apple提供了一个很好的综合小例子,"QuickContacts"(developer.apple.com/library/IOs/samplecode/QuickContacts/Introduction/Intro.html),概述了通讯簿UI框架的基本用法. - 可下载的源代码按照描述工作(一旦将名为"Appleseed"的人添加到地址簿中,或者将第246行(QuickContactsViewController.m)中的人名更改为地址簿中已存在的内容).
问题:
我们如何修改功能-(void)showPersonViewController函数ABPersonViewController "picker",使其在打开时(在被推送到navigationController的堆栈之后)已经处于编辑模式(具有可见的"完成"editButton).
在"7"之前的iOS版本中,只需插入例如picker.editing = YES;在将选择器推到导航堆栈之前,以便在打开时看到它(在下面的代码中看到编辑模式),这是一个直接的问题.
在iOS7中,这不再起作用了.
这是iOS7中的一个错误,如果是这样,是否有一个简单的解决方法(而不是例如逆向工程ABPersonViewController类)? - 或者它需要以不同的方式编码,这些天?
期待您的评论.
-(void)showPersonViewController
{
// Search for the person named "Appleseed" in the address book
NSArray *people = (NSArray *)CFBridgingRelease(ABAddressBookCopyPeopleWithName(self.addressBook, CFSTR("Appleseed")));
// Display "Appleseed" information if found in the address book
if ((people != nil) && [people count])
{
ABRecordRef person = (__bridge ABRecordRef)[people objectAtIndex:0];
ABPersonViewController *picker = [[ABPersonViewController alloc] init];
picker.personViewDelegate = self;
picker.displayedPerson = …Run Code Online (Sandbox Code Playgroud) 我正在尝试将NavigationBanner iAdSuite示例实现到我的项目中,以便我可以AdBannerView跨多个视图控制器共享单个实例,但我不断收到以下错误:
错误域= ADErrorDomain代码= 2"操作无法完成.加载受限制
我已将相关代码完全从当前的iAdSuite复制到我自己的应用程序中,并收到此错误.实际上,这个错误在Apple自己的NavigationBanner的iAdSuite示例中是可重复的(这是我试图实现的示例).通过添加以下内容可以看到错误:
NSLog (@"%@",error);
Run Code Online (Sandbox Code Playgroud)
至:
- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error
Run Code Online (Sandbox Code Playgroud)
要复制问题,iAdSuite请执行以下操作:
这对我的应用程序来说是一个问题,因为我想在没有连接的情况下隐藏iAd,然后在连接恢复后重新显示它.如果应用收到限制错误,那么在收到其他广告之前会有很长时间的延迟.
如何避免节流错误?我认为bannerView需要被删除然后重新添加,但无法弄清楚如何正确地执行此操作.
最后要注意的是,当前的iAdSuite使用ARC而我的应用程序却没有.即便如此,我的app和iAdSuite也会出现错误.
当我使用a时,TableViewController我能够在故事板中设置所有内容.由于我在表格视图中使用静态单元格而不是动态属性,因此我觉得这种方法更方便,更容易实现.我挂钩新的UITableView类,只是删除所有委托方法.像故事一样工作,因为所有内容/按钮都在故事板中设置.
我试图完成相同的结果,除了这次,我必须在a中工作ViewController并添加一个TableView作为子视图.一旦我连接了正确的类,添加我的插座连接并设置以下代理:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return 3;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"MainCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
return cell;
}
Run Code Online (Sandbox Code Playgroud)
如果我TableView设置为动态属性,这很有效:

但是,当我将表格视图内容更改为静态单元格并删除委托方法时,我的应用程序崩溃了.那么,我怎样才能将静态单元格(我可以在故事板中操作)的表格视图添加到我的ViewController?
我SKScene在启动期间设置了以下方式:
-(id)initWithSize:(CGSize)size {
if (self = [super initWithSize:size]) {
self.backgroundColor = [SKColor clearColor];
}
return self;
}
Run Code Online (Sandbox Code Playgroud)
但不知何故,我得到的是以下,黑色,根本不清楚:

我在这里错过了什么?如何让这个场景清晰?我已经把视野保持清晰,但这仍然是我得到的.
更新:我也尝试过设置,myView.opaque = NO;但这根本没有帮助.
当键盘被隐藏时,scrollview应该回到它的原始contentInset,但它在iOS7中不起作用.设置scrollview的contentInset时显示键盘工作但键盘隐藏时,scrollview的contentInset不能设置为插入零.代码:
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWasShown:) name:UIKeyboardDidShowNotification object:Nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWasHidden:) name:UIKeyboardDidHideNotification object:nil];
}
- (void)keyboardWasShown:(NSNotification *)notif
{
CGSize keyboardSize = [[[notif userInfo] objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;
UIEdgeInsets contentInsets = UIEdgeInsetsMake(0, 0, keyboardSize.height, 0);
UIScrollView *scrollView = (UIScrollView *)self.view;
scrollView.contentInset = contentInsets;
scrollView.scrollIndicatorInsets = contentInsets;
CGRect rect = self.view.frame;
rect.size.height -= keyboardSize.height;
if (!CGRectContainsPoint(rect, self.wishContentField.frame.origin)) {
CGPoint point = CGPointMake(0, self.wishContentField.frame.origin.y - keyboardSize.height);
[scrollView setContentOffset:point animated:YES];
}
}
- (void)keyboardWasHidden:(NSNotification *)notif
{
UIEdgeInsets zeroInsets = UIEdgeInsetsZero;
UIScrollView …Run Code Online (Sandbox Code Playgroud) 我有一个应用程序,用户可以通过将图像附加到MFMessageComposeViewController的实例来选择图像并将其发送给朋友.在MFMCVC视图中按下发送后,事情在某些时候按预期工作 - 带有图像的消息已成功发送给收件人,或者"消息失败"标签显示在本机iMessage客户端中的消息旁边(但在两种情况下,图像在本机客户端中都可见.但是,按下发送后的一半时间内会出现一个错误(在运行iOS 7的iPhone 4上).消息 - 附件和所有 - 消失,再也不会被看到.收件人从未收到邮件,也不会出现在iMessage的发件人邮件通道中.
我很确定这是Apple的MFMessageComposeViewController本身的一个错误,因为API很简单,我能够在单独的演示应用程序中可靠地重现错误https://github.com/timcour/mf-message-compose- fail-demo.git.
- (void)displaySMSComposerSheet
{
MFMessageComposeViewController *picker = [[MFMessageComposeViewController alloc] init];
picker.messageComposeDelegate = self;
NSData *data = [_imageDataCache objectForKey:[_imageURLs objectAtIndex:_currentIndex]];
[picker addAttachmentData:data
typeIdentifier:(NSString *)kUTTypeGIF
filename:@"share.gif"];
if (![self.recipientTextField.text isEqualToString:@""]) {
picker.recipients = [NSArray arrayWithObject:self.recipientTextField.text];
}
picker.body = [NSString stringWithFormat:@"image: %i", _currentIndex];
[self presentViewController:picker animated:YES completion:NULL];
}
Run Code Online (Sandbox Code Playgroud)
在很多成功和失败的情况下观察用户界面之后,在强调操作系统加剧的组合视图中似乎是一种竞争条件 - 不确定它是内存还是CPU压力(或两者兼而有之?).在任何情况下,当发送成功时,在选择联系人之后立即用其相应会话的内容填充消息信道的内容,明显地将新消息附加到结尾.但是当错误表面和消息消失时,对话的先前消息通常仅在按下发送按钮后才出现,而不显示新消息.如果这确实是竞争条件,那么一个猜测是它是作曲家VC的消息提取机制和-viewDidLoad.
有没有人在此之前遇到过这种情况并且/或者知道某种解决方法?我将向苹果提交一份错误报告,但我想找到一个不包括等待Apple修复的解决方案.
笔记:
iPhone 4和iPhone 5s上的消息最常消失,但iPod touch第5代(所有运行的iOS 7.0.2)很少消失.
使用iPhone 4上的https://github.com/timcour/mf-message-compose-fail-demo.git应用程序,通过尽可能快地将20张图像发送给同一个人,可以最轻松地复制该错误.
有一个单独的(但可能是相关的)错误.在MFMCVC视图中选择输入联系人的电子邮件地址后,vc将确定是否应发送iMessage或MMS.在测试期间的某些时间,它做出了错误的决定,并尝试将消息作为MMS发送,尽管收件人iMessage帐户没有与之关联的电话号码.这导致向发件人发送一条消息,就好像它已成功发送,但实际上无法到达目的地.
这似乎并不是许多用户向Apple抱怨的"iMessage无法发送消息"的错误.
更新:
以下是消息消失且无法发送时记录的堆栈跟踪: …
我使用以下代码在我的应用程序中调用操作表共享:
- (IBAction)sendPost:(id)sender
{
NSArray *activityItems = nil;
UIImage *appIcon = [UIImage imageNamed:@"appIcon.png"];
NSString *postText = [[NSString alloc] initWithFormat:@"LETS ASSUME THIS STRING IS LONGER THAN 140 CHARACTERS THAT TWITTER PROHIBITS BUT CAN STILL BE SHARED VIA FACEBOOK, EMAIL, TEXT"];
activityItems = @[postText,appIcon];
UIActivityViewController *activityController = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];
[self presentViewController:activityController animated:YES completion:nil];
}
Run Code Online (Sandbox Code Playgroud)
问题是这个:postText超过140个字符,所以不可能通过twitter分享,字符数将是-x(你通过twitter分享的红色字符数),我的问题是:怎么能我做了一个例外,以便shortPostText在选择Twitter进行共享时使用的是另一条消息吗?
一旦你sendPost发送了动作,我就看不到为twitter明确设置字符串的方法了:

编辑:我不明白为什么有人会对这个问题进行投票,我不会问如何制作if/else语句或如何编程.这是一个真正的问题,需要一个真正的答案.
更新:我需要解决这个问题,因为当用户尝试通过我的应用程序中的Twitter共享时,这是我得到的:

红色/负号字符指示符和非活动帖子按钮,因此除非字符数减少到0或更少,否则不允许帖子转到twitter.
我想问一下简单的麦克风音量检测问题.我的代码适用于iOS 6或更低版本,但不适用于iOS 7,我的代码如下所示:
-(void)viewDidLoad{
NSDictionary *settings = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithFloat: 44100.0], AVSampleRateKey,
[NSNumber numberWithInt: kAudioFormatAppleLossless], AVFormatIDKey,
[NSNumber numberWithInt: 1], AVNumberOfChannelsKey,
[NSNumber numberWithInt: AVAudioQualityMax], AVEncoderAudioQualityKey,
nil];
NSError *error;
recorder = [[AVAudioRecorder alloc] initWithURL:url settings:settings error:&error];
if (recorder) {
[recorder prepareToRecord];
recorder.meteringEnabled = YES;
[recorder record];
} else{
NSLog([error description]);
}
}
// then call periodically with the following method, volumeLevelSampling
-(void)volumeLevelSampling{
[recorder updateMeters];
NSLog(@"Average input: %f Peak input: %f", [recorder averagePowerForChannel:0], [recorder peakPowerForChannel:0]);
}
Run Code Online (Sandbox Code Playgroud)
它在iOS 6中运行得非常好,但它在iOS 7中没有采样任何东西.结果总是-120.
ios ×9
objective-c ×7
ios7 ×4
uiview ×4
sprite-kit ×2
uitableview ×2
addressbook ×1
cocoa-touch ×1
iad ×1
imessage ×1
iphone ×1
mfmessagecomposeviewcontroller ×1
twitter ×1
uiscrollview ×1