我有一个UIScrollView(实际上是一个UICollectionView,但这可能没关系).当它出现在IOS 7中时,导航控制器将其contentInset和contentOffset设置为我不想要的值.它似乎正在尝试调整状态栏和导航栏.我非常喜欢让他们独自一人.我已经通过覆盖contentInset和contentOffset的getter和setter方法来解决这个问题,并使用一个标志来告诉对象它是否应该接受一个集合.但有更好的方法吗?
对于给定的NSRange,我想找到一个CGRect在UILabel对应的的字形NSRange.例如,我想CGRect在"快速的棕色狐狸跳过懒狗"这句话中找到包含"狗"字样的字样.

诀窍是,UILabel有多行,而文本确实attributedText如此,所以找到字符串的确切位置有点困难.
我想在我的UILabel子类上写的方法看起来像这样:
- (CGRect)rectForSubstringWithRange:(NSRange)range;
Run Code Online (Sandbox Code Playgroud)
细节,对于有兴趣的人:
我的目标是能够创建一个具有UILabel的确切外观和位置的新UILabel,然后我可以制作动画.我已经把剩下的事情搞清楚了,但特别是这一步让我暂时退缩了.
到目前为止我尝试解决问题的方法是:
UITextView和UITextField而不是UILabel.我敢打赌,对此的正确答案涉及以下其中一项:
NSLayoutManager和textContainerForGlyphAtIndex:effectiveRange更新:这是一个github要点,我已经尝试了迄今为止解决这个问题的三件事:https://gist.github.com/bryanjclark/7036101
我刚刚使用默认的Master Details模板创建了一个简单的iOS 7应用程序.
在MasterViewController.m,viewDidAppear方法,我登录了
self.navigationController.navigationBar.frame.size.height
self.navigationController.navigationBar.frame.origin.y
Run Code Online (Sandbox Code Playgroud)
并因此收到44和20.这看起来很奇怪,因为根据我的阅读,iOS 7中的导航栏应该是64点高度并从0点开始,因此它位于状态栏下方.我读到的是
因为状态栏是透明的,所以它后面的视图显示出来
如果您的应用使用自定义图像作为条形图的背景,则需要提供"更高"的图像,使其向上延伸到状态栏后面.导航栏的高度从44点(88像素)更改为64点(128像素).
我注意到在iOS 7中,UITableViewCells在iOS 6没有的单元格的分隔符中有换行符.有没有办法摆脱这个换行符?将分隔符更改为none,然后使用分隔符的颜色制作UIViews仍会导致白色分隔符无论如何都会发生.
我看过很多关于类似事情的帖子,但没有一个匹配或解决这个问题.从iOS 7开始,每当我添加UIButton到一个UITableViewCell或甚至是一个footerview它都工作"很好",这意味着它接收目标动作,但它没有显示通常在点击时发生的小亮点UIButton.它使UI看起来很时髦而不显示按钮对触摸的反应.
我很确定这是iOS7中的一个错误,但是有人找到了解决方案或者可以帮我找到一个:)
编辑:我忘了提到它会突出显示我是否长按按钮,但如果只是添加到标准视图就不会像它那样快速点击.
码:
创建按钮:
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
button.titleLabel.font = [UIFont systemFontOfSize:14];
button.titleLabel.textColor = [UIColor blueColor];
[button setTitle:@"Testing" forState:UIControlStateNormal];
[button addTarget:self action:@selector(buttonPressed:) forControlEvents: UIControlEventTouchDown];
button.frame = CGRectMake(0, 0, self.view.frame.size.width/2, 40);
Run Code Online (Sandbox Code Playgroud)
我测试的东西:
//删除手势识别器UITableView,以防他们挡路.
for (UIGestureRecognizer *recognizer in self.tableView.gestureRecognizers) {
recognizer.enabled = NO;
}
Run Code Online (Sandbox Code Playgroud)
//从Cell中删除手势
for (UIGestureRecognizer *recognizer in self.contentView.gestureRecognizers) {
recognizer.enabled = NO;
}
Run Code Online (Sandbox Code Playgroud)
//这显示了轻微的触摸,但这不是理想的外观
button.showsTouchWhenHighlighted = YES;
Run Code Online (Sandbox Code Playgroud) 添加一些控件UIAlertView已在iOS7中使用addSubview方法弃用.据我所知,Apple承诺增加contentView财产.
iOS 7现已发布,我发现此属性未添加.这就是为什么我搜索一些能够为此alertView添加进度条的自定义解决方案.例如类似于TSAlertView的东西,但更适合在iOS 7中使用.
我正在使用UIActivityViewController在iOS7中共享项目.当我点击"邮件"选项时,它会弹出邮件编辑器,但导航栏上的"取消"和"发送"按钮以及导航栏本身都是蓝色的,这使得它很难阅读,所以我想改变它们的颜色.它在iOS6中工作,但在iOS7中不工作.
我试过了
[[UIBarButtonItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor redColor], UITextAttributeTextColor, [UIColor clearColor], UITextAttributeTextShadowColor, nil] forState:UIControlStateNormal];
Run Code Online (Sandbox Code Playgroud)
哪个适用于iOS6,我试过了
[[UIBarButtonItem appearance] setTintColor:[UIColor redColor]];
[[UINavigationBar appearance] setBarTintColor:[UIColor redColor]];
Run Code Online (Sandbox Code Playgroud)
这会导致颜色在第一次运行应用程序时闪烁红色,然后立即切换回蓝色.
我试图减少目前48MB的iOS应用程序的整体大小.当我分析子文件夹时,我发现Assets.car占用了41MB.我无法打开并看到哪一个占用了那么多空间.
我找不到有关Assets.car文件的任何好文档.有人可以建议如何查看内容吗?
我正准备更新基于Core Data的应用程序以修复iOS 7.我使用Xcode 5和iOS 7 SDK GM.但是我意识到持久性存储的不同行为(即a UIManagedDocument):在iOS 7构建之前,persistentStore文档文件夹中只有一个文件(有时还有第二个文件persistentStore-journal).
在iOS 7构建(干净安装)中,持久性存储现在有三个文件:
persistentStorepersistentStore-wal 和persistentStore-shmApple现在默认将日志模式更改为WAL吗?我想知道我的应用程序是否有影响(想想用户如何从上一版本更新)?是否最好禁用WAL - 如果是这样,我怎么能用iOS 7/UIManagedDocument?


我已经关闭了Autolayout,并且viewcontroller嵌入在导航控制器中.我正在使用Xcode 5,Storyboard.
我不明白为什么它会从顶部留下空间.实际上在故事板中我把我的标签正好放在导航栏下方.但是当我在模拟器上运行它然后它从顶部离开空间.
解决这个问题的一种黑客方法
-(void)viewWillLayoutSubviews
{
self.scrollViewMain.frame = CGRectMake(0, -70, 320, 800);
self.scrollViewMain.contentSize = CGSizeMake(320, 800);
}
Run Code Online (Sandbox Code Playgroud)
但我错过了一些非常简单的方法.
ios7 ×10
ios ×6
iphone ×3
objective-c ×3
ios6 ×2
uiscrollview ×2
uitableview ×2
core-data ×1
frame ×1
height ×1
sqlite ×1
statusbar ×1
textkit ×1
uialertview ×1
uilabel ×1