2014-10-20 70 views
0

在iOS8扩展中,特别是共享扩展,有没有人能够重载loadPreviewView方法来提供自定义预览视图?我通过返回一个带有UIIMageView子视图的50x50 UIView创建了一个,但它显示在扩展视图之外(太右),并且不会将共享扩展中的textView推到左边。如果有人对此进行了定制,请提供示例代码!谢谢iOS 8分享扩展loadPreviewView

+0

检查它:http://stackoverflow.com/questions/24056024/sharing-extension-in-ios8-beta?rq=1 – 2016-10-19 05:16:08

回答

1

是的,我可以得到它使用宽度&高度限制。如果我设置了大小和遮罩,它将无法正确显示。

这里是一个示例代码:

- (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

或者,你可以从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

I T的可能你还需要配置您查看像这样:

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