2014-10-20 106 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;