我正在向Facebook成功发布自定义Open Graph对象/操作.
我们的生产和登台环境都有自己的FB应用程序,它们的配置相同(除了在我们的生产应用程序中,对象和操作都得到批准,我们的应用程序详细信息页面也是如此).
出于某种原因,暂存是使用带有标题/说明的较大照片发布的.生产帖子的图像较小,所有文本都在右侧.
我不记得在升级时做了什么特别的事情,但最后,我们希望生产中的帖子看起来像是在分段时做的.知道我需要调整哪个设置?
更新: 我已经了解到大图像的故事被称为"以图像为主导的故事".在上面的链接中提到的关于如何获得这种新布局的唯一事情是:
较大的新闻Feed故事布局由Open Graph帖子使用大于200 x 200px的图像大小生成.
使用FB调试器,您可以看到FB抓取的两个图像都是600x600:

我已经阅读了很多关于SO的答案,但我似乎无法在iOS7上进行自动旋转.
我只需要一个视图控制器来旋转,所以我不想在我的Info.plist中设置旋转设置.
据我了解Apple的文档,单个视图控制器可以通过简单地覆盖两个方法来覆盖全局旋转设置(来自Info.plist).Info.plist设置为仅允许Portrait,我的视图控制器实现以下方法:
- (NSUInteger)supportedInterfaceOrientations
{
NSLog(@"%s", __PRETTY_FUNCTION__);
return UIInterfaceOrientationMaskAllButUpsideDown;
}
- (BOOL)shouldAutorotate
{
NSLog(@"%s", __PRETTY_FUNCTION__);
return true;
}
Run Code Online (Sandbox Code Playgroud)
我在旋转时看到那些NSLog语句但没有旋转.
如果我使用正确的旋转设置配置Info.plist,我的视图将旋转,但如果我尝试依赖我的视图控制器则不会.
不确定它是否重要,但我试图旋转的视图来自使用自动布局的.xib.
此外,我的ViewController以模态方式呈现,并包含在导航控制器中.我试过单独呈现视图控制器,但这不起作用.我也尝试在UINavigationController中添加一个类别,以便从它的topViewController获取它的自动旋转方向.
使用Storyboards和Autolayout,我有一个UIVcController作为主视图的UIVcController.我在滚动视图中嵌入了几个容器视图.其中一些嵌入式容器视图包含UITableViews,每个视图都具有不同高度的单元格.我需要tableView的高度足够大,以便一次显示所有单元格,因为在tableView上将禁用滚动.
在主UIViewController中,必须定义容器视图的高度,以使滚动视图正常工作.这是有问题的,因为一旦所有不同高度的单元格完成渲染,我无法知道我的tableView有多大.如何在运行时调整容器视图的高度以适应我的非滚动UITableView?
到目前为止,我已经完成了以下工作:
// in embedded UITableViewController
//
- (void)viewDidLoad {
// force layout early so I can determine my table's height
[self.tableView layoutIfNeeded];
if (self.detailsDelegate) {
[self.detailsTableDelegate didDetermineHeightForDetailsTableView:self.tableView];
}
}
// in my main UIViewController
// I have an IBOutlet to a height constraint set up on my container view
// this initial height constraint is just temporary, and will be overridden
// once this delegate method is called
- (void)didDetermineHeightForDetailsTableView:(UITableView *)tableView
{
self.detailsContainerHeightConstraint.constant = tableView.contentSize.height;
}
Run Code Online (Sandbox Code Playgroud)
这工作正常,我对结果很满意.但是,我有一两个容器视图要添加,它们将具有非滚动的tableViews,我不想为每个容器视图创建一个新的委托协议.我认为我不能制定我具有通用性的协议. …
我正在为我的iPhone应用程序使用Facebook API,并有两个问题:
所有文档/示例似乎都将所有内容放在appDelegate中:实例化Facebook对象并在appDidFinishLaunching中进行授权,并覆盖应用程序:handleOpenURL方法.
在我的应用程序中,除非用户导航到特定视图并按下按钮,否则我不希望发生任何事情.我理解在该视图中,我将实例化Facebook对象并在按钮处理程序方法中启动授权,但是如何处理应用程序的覆盖:handleOpenURL?我必须使用与我的特定视图控制器中使用的不同的FB对象(在我的应用程序委托中实例化).
这种情况是否需要单身人士?或者它是一个很好的设计解决方案让我的appDelegate实例化FB对象,并通过我的程序中的任何其他地方访问它?
在FB文档中,它们告诉您覆盖应用程序:handleOpenURL方法:
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
return [facebook handleOpenURL:url];
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
当我的应用加载时,我下拉了99个对象的JSON表示.
每个对象都有一个'image_url'字段,我将其传递给AFNetworking setImageWithURLRequest.
我的图像加载到tableView中,因此,只有前几个单元格对其图像进行请求.直到我向下滚动,才会发出后续图像请求.
在我下拉初始数据集后,我希望能够启动后台进程并下载最初不可见的95个左右的对象,并以这样的方式缓存它们setImageWithURLRequest:它已经有一个缓存的图像.
虽然AFImageCache是私有的,所以我不确定这是否可行.我知道我可以使用NSURLCache缓存,但后来我有两个独立的,孤立的缓存,这也不理想.
我是唯一不使用AFNetworking的UIImageView类别的选择吗?
这些答案让我这么想:
iOS使用AFImageCache缓存图像似乎不起作用
如何在使用AFNetworking的setImageWithURL时配置缓存
Ionic/Cordova是否支持构建变体(如Xcode中的目标或Gradle中的产品风味)?我需要在相同的代码库中创建Lite和付费版本.
在原始问题没有回答之后重新发布更简洁和专注的问题.在另一天的研究之后,还要对问题进行更深入的了解:
在我的app delegate(didFinishLaunching)中,我设置了一个callEventHandleron CTCallCenter.我的想法是,当callState发生变化时,我会发布一个包含userInfo dict的通知call.callState.在我看来,我观察到这个通知,当
userInfodict包含值时CTCallDisconnected,我想取消隐藏视图.
我遇到的问题是,无需担心的方面,几乎是一致的,约7秒钟.其他一切工作正常,我知道这是因为我NSLog在取消隐藏之前和之后,这些日志立即出现,但是看不见的视图仍然滞后7秒.
这是我的代码:
appDidFinishLaunching:
self.callCenter = [[CTCallCenter alloc] init];
self.callCenter.callEventHandler = ^(CTCall* call) {
// anounce that we've had a state change in our call center
NSDictionary *dict = [NSDictionary dictionaryWithObject:call.callState forKey:@"callState"];
[[NSNotificationCenter defaultCenter] postNotificationName:@"CTCallStateDidChange" object:self userInfo:dict];
};
Run Code Online (Sandbox Code Playgroud)
然后,当用户点击拨打电话号码的按钮时,我会收听此通知:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(ctCallStateDidChange:) name:@"CTCallStateDidChange" object:nil];
Run Code Online (Sandbox Code Playgroud)
然后,在ctCallStateDidChange中:
- (void)ctCallStateDidChange:(NSNotification *)notification
{
NSLog(@"121");
NSString *callInfo = [[notification userInfo] objectForKey:@"callState"];
if ([callInfo isEqualToString:CTCallStateDisconnected]) {
NSLog(@"before show"); …Run Code Online (Sandbox Code Playgroud) iphone objective-c grand-central-dispatch ios core-telephony
根据CloudKit概述:
CloudKit还允许您的用户使用他们的iCloud Apple ID匿名登录您的应用,而无需共享他们的个人信息.
我在他们的文档中找不到关于此功能的任何其他内容.我已经有了一个带有我自己后端的应用程序,因此我不需要任何CloudKit提供的后端即服务功能,但我想利用用户登录iCloud帐户,与我们目前使用Facebook和Twitter的方式大致相同.
是否可以使用CloudKit,或者您是否还必须利用其BAAS功能才能利用登录?
在UICollectionView的补充视图(标题)中,我有一个多行标签,我想截断为3行.

当用户点击标题(补充)视图中的任何位置时,我想将UILabel切换为0行,以便显示所有文本,并相应地增加collectionView的补充视图的高度(最好是动画的).点击标题后会发生以下情况:

到目前为止,这是我的代码:
// MyHeaderReusableView.m
// my gesture recognizer's action
- (IBAction)onHeaderTap:(UITapGestureRecognizer *)sender
{
self.listIntro.numberOfLines = 0;
// force -layoutSubviews to run again
[self setNeedsLayout];
[self layoutIfNeeded];
}
- (void)layoutSubviews
{
[super layoutSubviews];
self.listTitle.preferredMaxLayoutWidth = self.listTitle.frame.size.width;
self.listIntro.preferredMaxLayoutWidth = self.listIntro.frame.size.width;
[self layoutIfNeeded];
CGFloat height = [self systemLayoutSizeFittingSize:UILayoutFittingCompressedSize].height;
self.frame = ({
CGRect headerFrame = self.frame;
headerFrame.size.height = height;
headerFrame;
});
NSLog(@"height: %@", @(height));
}
Run Code Online (Sandbox Code Playgroud)
当我height在结尾处登录时layoutSubviews,其值为149而标签被截断并numberOfLines设置为3.在点击headerView,设置numberOfLines为0并强制布局传递后,高度将记录为163.5.大!
唯一的问题是整个headerView不会增长,并且单元格不会被推下.
如何动态更改collectionView的补充视图(最好是动画)的高度?
我知道UICollectionViewFlowLayout headerReferenceSize,collectionView:layout:referenceSizeForHeaderInSection:但不太确定我在这种情况下如何使用它们.
更新1
我找到了解决办法:
// instead of
font = [font fontWithSize:pointSize];
// i can do this and get the correct font back
font = [UIFont fontWithName:font.fontName size:pointSize]
Run Code Online (Sandbox Code Playgroud)
我正在使用Nick Lockwood的HTMLLabel类将HTML转换为一个尊重HTML中样式的NSAttributedString.在大多数情况下,它很有效.
但是,我在我的应用程序中使用自定义字体,出于某种原因,我的字体总是以粗体显示.我没有使用系统字体的这个问题.我把它缩小到这个方法:
- (UIFont *)font
{
// ** Code Path 1 **
UIFont *font = _styles[HTMLFont];
if ([font isKindOfClass:[NSString class]])
{
font = [UIFont fontWithName:(NSString *)font size:17.0f];
}
NSInteger pointSize = [_styles[HTMLTextSize] floatValue] ?: font.pointSize;
if (self.bold) {
if (self.italic)
{
font = [font boldItalicFontOfSize:pointSize];
}
else
{
font = [font boldFontOfSize:pointSize]; …Run Code Online (Sandbox Code Playgroud) ios ×9
objective-c ×6
iphone ×3
autolayout ×2
facebook ×2
afnetworking ×1
android ×1
caching ×1
cloudkit ×1
cordova ×1
fonts ×1
icloud ×1
ios7 ×1
ios8 ×1
nsurlcache ×1
opengraph ×1
rotation ×1
storyboard ×1
uifont ×1
uitableview ×1
xcode ×1