Innanzitutto, creare i file. Ho scelto di nome mio ActivityViewCustomActivity
Marchio ActivityViewCustomActivity.h simile a questa:
#import <UIKit/UIKit.h>
@interface ActivityViewCustomActivity : UIActivity
@end
Fai ActivityViewCustomActivity.m simile a questa:
#import "ActivityViewCustomActivity.h"
@implementation ActivityViewCustomActivity
- (NSString *)activityType
{
return @"yourappname.Review.App";
}
- (NSString *)activityTitle
{
return @"Review App";
}
- (UIImage *)activityImage
{
// Note: These images need to have a transparent background and I recommend these sizes:
// [email protected] should be 126 px, iPadShare should be 53 px, [email protected] should be 100
// px, and iPhoneShare should be 50 px. I found these sizes to work for what I was making.
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
return [UIImage imageNamed:@"iPadShare.png"];
}
else
{
return [UIImage imageNamed:@"iPhoneShare.png"];
}
}
- (BOOL)canPerformWithActivityItems:(NSArray *)activityItems
{
NSLog(@"%s", __FUNCTION__);
return YES;
}
- (void)prepareWithActivityItems:(NSArray *)activityItems
{
NSLog(@"%s",__FUNCTION__);
}
- (UIViewController *)activityViewController
{
NSLog(@"%s",__FUNCTION__);
return nil;
}
- (void)performActivity
{
// This is where you can do anything you want, and is the whole reason for creating a custom
// UIActivity
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itms-apps://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=yourappid"]];
[self activityDidFinish:YES];
}
@end
Questo è ciò che la mia immagine sembrava: Qui è il .PSD che ho creato: - link malevolo rimosso - Ed ecco l'originale 250 px .png http://i.imgur.com/pGWVj.png
Ora nel tuo controller della vista fare questo:
#import "ActivityViewCustomActivity.h"
E ora dove vuoi visualizzare il vostro UIActivityViewController
:
NSString *textItem = @"Check out the yourAppNameHere app: itunes http link to your app here";
UIImage *imageToShare = [UIImage imageNamed:@"anyImage.png"];
NSArray *items = [NSArray arrayWithObjects:textItem,imageToShare,nil];
ActivityViewCustomActivity *aVCA = [[ActivityViewCustomActivity alloc]init];
UIActivityViewController *activityVC =
[[UIActivityViewController alloc] initWithActivityItems:items
applicationActivities:[NSArray arrayWithObject:aVCA]];
activityVC.excludedActivityTypes = @[UIActivityTypePostToWeibo, UIActivityTypeAssignToContact, UIActivityTypePrint, UIActivityTypeCopyToPasteboard, UIActivityTypeSaveToCameraRoll];
activityVC.completionHandler = ^(NSString *activityType, BOOL completed)
{
NSLog(@"ActivityType: %@", activityType);
NSLog(@"Completed: %i", completed);
};
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
self.popoverController = [[UIPopoverController alloc] initWithContentViewController:activityVC];
CGRect rect = [[UIScreen mainScreen] bounds];
[self.popoverController
presentPopoverFromRect:rect inView:self.view
permittedArrowDirections:0
animated:YES];
}
else
{
[self presentViewController:activityVC animated:YES completion:nil];
}
funziona alla grande! Grazie. – OscarTheGrouch
Secondo il manuale Apple per iPhone e iPod touch, le immagini non dovrebbero essere più grandi di 43 per 43 punti (che equivale a 86 per 86 pixel per i dispositivi con display Retina.) Per iPad, le immagini non devono superare i 55 x 55 punti (che equivale a 110 per 110 pixel per iPad con display Retina). – voromax
Il manuale Apple non funziona per tutto. Le dimensioni dell'immagine che ho selezionato erano per tentativi ed errori e funzionano perfettamente per ciò di cui avevo bisogno. – klcjr89