iOS 8共享扩展loadPreviewView

时间:2014-10-20 18:38:59

标签: ios ios8

在iOS8扩展中,特别是共享扩展,是否有人能够覆盖loadPreviewView方法以提供自定义预览视图?我通过返回带有UIIMageView子视图的50x50 UIView创建了一个,但是它显示在扩展视图之外(太远了),并且它不会将共享扩展中的textView推到左侧。如果有人定制了这个,请提供示例代码!感谢

2 个答案:

答案 0 :(得分:1)

是的,我可以使用width&高度限制。如果我设置尺寸和面具,它将无法正确显示。

以下是示例代码:

- (UIView *)loadPreviewView {
UIView * previewView = [super loadPreviewView];

if (previewView == nil) {
    previewView = [[UIImageView alloc] initWithFrame:CGRectZero];
    [previewView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:[previewView(90)]" options:0 metrics:nil views:NSDictionaryOfVariableBindings(previewView)]];
    [previewView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[previewView(90)]" options:0 metrics:nil views:NSDictionaryOfVariableBindings(previewView)]];
}

return previewView;

}

答案 1 :(得分:1)

或者,您可以从UIImageView派生并为intrinsicContentSize提供实施:

@interface MyImageView : UIImageView

@end

@implementation MyImageView

-(CGSize)intrinsicContentSize {
  return CGSizeMake(70, 70);
}

@end

在此WWDC会话中详细介绍:https://developer.apple.com/videos/play/wwdc2015/224/?time=334

您可能也想要像这样配置视图:

view.clipsToBounds = YES;
view.contentMode = UIViewContentModeScaleAspectFill;