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