我正在更新旧的应用程序,AdBannerView当没有广告时,它会从屏幕上滑落.当有广告时,它会在屏幕上滑动.基本的东西.
旧样式,我在动画块中设置框架.新风格,我有一个IBOutlet确定Y位置的约束,在这种情况下,它与superview底部的距离,并修改常量.
- (void)moveBannerOffScreen {
[UIView animateWithDuration:5 animations:^{
_addBannerDistanceFromBottomConstraint.constant = -32;
}];
bannerIsVisible = FALSE;
}
- (void)moveBannerOnScreen {
[UIView animateWithDuration:5 animations:^{
_addBannerDistanceFromBottomConstraint.constant = 0;
}];
bannerIsVisible = TRUE;
}
Run Code Online (Sandbox Code Playgroud)
横幅移动,完全符合预期,但没有动画.
更新:我重新观看了WWDC12视频" 掌握自动布局的最佳实践 ",其中包括动画.它讨论了如何使用更新约束AdBannerView.

我尝试使用以下代码,但得到完全相同的结果.
- (void)moveBannerOffScreen {
_addBannerDistanceFromBottomConstraint.constant = -32;
[UIView animateWithDuration:2 animations:^{
[self.view setNeedsLayout];
}];
bannerIsVisible = FALSE;
}
- (void)moveBannerOnScreen {
_addBannerDistanceFromBottomConstraint.constant = 0;
[UIView animateWithDuration:2 animations:^{
[self.view setNeedsLayout];
}];
bannerIsVisible = TRUE;
}
Run Code Online (Sandbox Code Playgroud)
在旁注中,我已经多次检查过,这是在主线程上执行的.
我UIScrollView在页面上有一些.您可以单独滚动它们或将它们锁定在一起并将它们滚动为一个.锁定时会出现问题.
我使用UIScrollViewDelegate并scrollViewDidScroll:跟踪运动.我查询contentOffset的UIScrollView哪些改变,然后反映他们的设置更改为其他滚动视图contentOffset属性相匹配.
很棒....除了我注意到很多额外的电话.以编程方式更改contentOffset我的滚动视图会触发scrollViewDidScroll:调用委托方法.我尝试过使用setContentOffset:animated:,但我仍然在委托上获得触发器.
如何以编程方式修改contentOffsets以不触发scrollViewDidScroll:?
实现说明....每个UIScrollView都是自定义的一部分,UIView它使用委托模式回调到UIViewController处理协调各种contentOffset值的呈现子类.
我有一堆.ipa文件,我使用了一个脚本来重新签名.
那么如何检查配置文件/签名证书以确保他们使用正确的信息?
理想情况下,我希望能够获取任何.ipa文件,并告诉您使用哪个配置文件/签名证书进行签名.
背景故事:我们的企业分发证书即将到期,我想重新签署我们的东西.这是我们在Xcode中制作和存档的所有内容的简单版本,但对于第三方供应商制作的可分发版本,我不能这样做.我想避免要求重新签名的.ipa文件,因为一个新的.ipa 可能包括未知的变化,引进的问题,他们可能会收取我们太多...但我更担心的第一个问题.
由于这两个新老分布证书是否仍然有效(你会得到一个6个月重叠)我需要能够确认新的使用,否则我会看起来真的很傻,当旧的到期和"辞职"的剧本没"实际上做的工作.
我通过项目导航器点击XIB.它打开并立即将图标更改为灰色,显示我有未保存的更改.如果我保存更改,请单击其他文件,然后单击返回以重新打开它,进行更多更改.始终在打开时修改.
它发生在这个项目中的一个XIB文件和另一个项目中的一对.我很想知道它为什么会发生以及我现在可以做些什么来解决它并在将来阻止它.
注意:使用Xcode 3.2 Build 4C199和Snow Leopard
编辑:我添加了几个部分,这些部分在其中一个打开/修改中从XML中删除
<key>outlets</key>
<dict>
<key>addEventTabBarController</key>
<string>UITabBarController</string>
<key>window</key>
<string>UIWindow</string>
</dict>
<key>superclass</key>
<string>NSObject</string>
Run Code Online (Sandbox Code Playgroud)
和
<key>outlets</key>
<dict>
<key>courseTableCell</key>
<string>UITableViewCell</string>
</dict>
<key>superclass</key>
<string>UITableViewController</string>
Run Code Online (Sandbox Code Playgroud) 假设您已选择了一个对象,并且在"工具"面板中打开了"大小选择器".您可以看到应用于对象的约束列表.在约束列表中,您可以单击小齿轮并选择删除.你不能在Xcode 6中.
在IB中删除约束仍有几种方法:
不过,我想念齿轮删除功能的易用性,我想知道它是否仍然以类似的方式存在,我只能找到它.虽然其他方式有效,但我发现自己浪费了大量时间,特别是在使用新的大小级别功能时.那么,找到一种更简单的方法来删除它们?
Xcode 5.0,iOS 7和更新现有应用程序.UITableView选定的行现在是灰色的,而不是蓝色的.
根据我的阅读,他们将默认值更改selectionStyle为灰色.但"蓝色"仍然是IB中的一个选项并且UITableViewCellSelectionStyleBlue仍然存在.检查新的HIG,它们看起来不像蓝色和"设置"应用仍然使用蓝色单元格选择.
我已经尝试在IB和代码中设置值,但没有运气.关于我需要做些什么才能获得蓝色选择风格的想法?
当我在Xcode 5中打开我的Xcode 4.x项目并加载一个Storyboard时,会发生一些奇怪的事情.主要是,我的一些图像正在重新调整大小和位置.大小始终设置为0,0并且位置在某处WAY off屏幕.值-3007,12824.这是一个具有大量故事板布局的应用程序,虽然它没有弄乱所有图像,但有500多个有这个问题.
例如这个
<rect key="frame" x="403" y="134" width="572" height="486"/>
变成
<rect key="frame" x="-815" y="1490" width="0.0" height="0.0"/>
我已经尝试将故事板设置为Xcode 4.6版本,但没有效果.任何人都知道为什么会这样,以及如何防止它(没有手动丢弃我不想要的所有变化)?
编辑:我正在使用GM Seed for Xcode 5.
自从我将旧应用程序转换为iOS 6后,我开始在控制台中收到以下消息.
WARNING: Slow defaults access for key ClientState took 0.023656 seconds, tolerance is 0.020000
除了将我的代码从iOS 5更新到iOS 6之外,我还切换到了自动布局.我运行了仪器/时间分析器,而rootViewController我的appDelegate就是问题所在.每当我切换视图控制器时,它就会吸引大部分时间(无论我是否必须实例化视图控制器或重新使用已存在的视图控制器).
window.rootViewController = myViewController;
Run Code Online (Sandbox Code Playgroud)
我知道这个方法表面上做了什么,但我不确定幕后会发生什么...现在会导致它变慢的原因以及我该怎样做才能加快速度呢?
编辑:我已经尝试将我的故事板关闭自动布局,问题消失了(当然我的UI布局是乱七八糟的).所以明显的结论是,它是关于自动布局的.我可能只有不到70个视图,所有组合在屏幕上以及布局它们所需的各种约束.我很难相信自动布局要慢得多(从关闭自动布局的约80ms到打开自动布局的~1370ms).
我正在尝试验证是否可以使用jvectormap在地图上的标记之间绘制线条.
以下是我想要实现的目标:http://i.imgur.com/p1Zypv3.gif
如果这是可行的,有人可以给我一个提示,如果可以的话怎么办?
感谢任何输入.
之前我理解该
Delegate模式仅用于调用事件delegate instance和获取控件(如size/font/etc ...).
Datasource模式仅用于从中获取数据datasource instance(如views/title/description/etc ...)
但看起来这是一个很好的错觉,在看了Apple之后UITableViewDelegate protocol我感到困惑,因为
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section;
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section;
Run Code Online (Sandbox Code Playgroud)
委托方法(但我认为它们是UITableViewDatasource方法)
这是来自Apple的脏代码,还是我遗漏了一些重要的东西,了解数据源和委托之间的区别?
编辑: 谢谢@DBD的好回答,这里更混乱
这是UITableViewDelegate方法,它返回View以进行绘制
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section;
而且UITableViewDataSource中还有一个配置
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section;
而且,我们可以看到一个在UITableViewDataSource中返回View的方法
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
这里我们有问题为什么cellForRowAtIndexPath:和viewForHeaderInSection:不在UITableViewDataSource中
ios ×6
autolayout ×3
objective-c ×2
uitableview ×2
xcode ×2
animation ×1
certificate ×1
ios6 ×1
ios7 ×1
ipa ×1
iphone ×1
jvectormap ×1
storyboard ×1
uikit ×1
uiscrollview ×1
xcode4.2 ×1
xcode5 ×1
xcode6 ×1
xib ×1