Sto usando ShareKit (www.getsharekit.com) per condividere i miei URL su Twitter e Facebook. Voglio essere in grado di rimuovere tutti i social network aggiuntivi a cui punta, ma non sono sicuro di dove modificare?Come personalizzare il foglio di azione ShareKit?
risposta
Da ShareKit/core/SHK.m:
[SHK setFavorites: (NSArray *)favs forType:(SHKShareType)type]
+ (void)setFavorites:(NSArray *)favs forType:(SHKShareType)type
{
[[NSUserDefaults standardUserDefaults] setObject:favs forKey:[NSString stringWithFormat:@"%@%i", SHK_FAVS_PREFIX_KEY, type]];
}
favoriti è come:
[NSArray arrayWithObjects:@"SHKTwitter",@"SHKFacebook",@"SHKReadItLater",nil]
tipo è SHKShareType:
typedef enum
{
SHKShareTypeUndefined,
SHKShareTypeURL,
SHKShareTypeText,
SHKShareTypeImage,
SHKShareTypeFile
} SHKShareType;
in SHK.m lo trovi Metodo
+ (NSArray *)favoriteSharersForType:(SHKShareType)type
e cambiare
switch (type)
{
case SHKShareTypeURL:
favoriteSharers = [NSArray arrayWithObjects:@"SHKTwitter",@"SHKFacebook",@"SHKReadItLater",nil];
break;
case SHKShareTypeImage:
favoriteSharers = [NSArray arrayWithObjects:@"SHKTwitter",@"SHKFacebook",@"SHKReadItLater",nil];
break;
case SHKShareTypeText:
favoriteSharers = [NSArray arrayWithObjects:@"SHKTwitter",@"SHKFacebook",@"SHKReadItLater",nil];
break;
case SHKShareTypeFile:
favoriteSharers = [NSArray arrayWithObjects:@"SHKTwitter",@"SHKFacebook",@"SHKReadItLater",nil];
break;
a quanto segue per ogni istanza dell'istruzione switch:
favoriteSharers = [NSArray arrayWithObjects:@"SHKFacebook", nil];
o che cosa mai altre opzioni che si desidera supportare (cioè se desideri solo twitter e facebook aggiungi @ "SHKTwitter", all'array)
che eliminerà l'altra opti ma il foglio di azione che mostra le opzioni non riflette la modifica e continuerà a fornire l'opzione più, che dobbiamo anche disabilitare.
Quindi, per fare che andare a SHKActionSheet.m
in questo metodo è possibile cambiare il titolo da "Condividi" per qualcosa di più specifico (questa parte è opzionale) vale a dire "Condividi con Facebook e Twitter"
+ (SHKActionSheet *)actionSheetForType:(SHKShareType)type
cambiamento
SHKActionSheet *as = [[SHKActionSheet alloc] initWithTitle:SHKLocalizedString(@"PUT YOUR NEW TITLE HERE")
delegate:self
cancelButtonTitle:nil
destructiveButtonTitle:nil
otherButtonTitles:nil];
as.item = [[[SHKItem alloc] init] autorelease];
as.item.shareType = type;
che in quello stesso metodo, eliminare questa linea
// Add More button
[as addButtonWithTitle:SHKLocalizedString(@"More...")];
che rimuoverà il pulsante di più, ma ora il codice sarà ora confondere il pulsante di più con il pulsante di annullamento, in modo per risolvere questo, andare a questo metodo:
- (void)dismissWithClickedButtonIndex:(NSInteger)buttonIndex animated:(BOOL)animated
ed eliminare la seguente else if
// More
else if (buttonIndex == sharers.count)
{
SHKShareMenu *shareMenu = [[SHKCustomShareMenu alloc] initWithStyle:UITableViewStyleGrouped];
shareMenu.item = item;
[[SHK currentHelper] showViewController:shareMenu];
[shareMenu release];
}
ciò che questo metodo è sospettato di fare è prendere il pulsante che normalmente è il pulsante più e aprire più opzioni. Quindi, eliminandolo, il codice non ha un'azione associata con il pulsante Annulla, quindi chiude e rilascia il foglio azioni, creando effettivamente un pulsante Annulla
Vorrei poterti dare 10 upvotes per una spiegazione così approfondita. Questo è esattamente ciò di cui avevo bisogno - grazie! –
Che bella risposta. La cosa migliore che ho visto su SO da un po '... e da qualcuno con un basso rappresentante come me! –
spiegazione superba .. plus 10 uppvotes – Hadi
Vedere my answer sull'altro thread con una spiegazione più approfondita.
ora è facilmente configurabile senza modificare il codice di ShareKit, se si utilizza ShareKit 2.0
In sostanza, se si utilizza solo Facebook e Twitter, è più facile non fare confusione con il codice di ShareKit. Puoi facilmente creare il tuo UIActionSheet con due pulsanti e chiamare i metodi ShareKit's convenience share.
wonder why down vote? Con "pasticcio con il codice di ShareKit" intendo personalizzare il codice di ShareKit nella tua app (nascondendo il pulsante Altro), quando non è necessario. Ciò ti consentirà di ottenere un lavoro aggiuntivo, se desideri eseguire l'aggiornamento alla versione più recente di ShareKit. È possibile ottenere lo stesso utilizzando i metodi di convenienza di ShareKit direttamente con il classico standard UIActionSheet. –
Per i servizi indesiderati che non compaiono sul foglio di azione, è sufficiente rimuovere le rispettive classi di servizi di condivisione dal progetto.
Passare al progetto -> Condivisioni -> Servizi -> selezionare i file .h e .m del rispettivo servizio ed eliminarlo.
Ad esempio, l'opzione di Facebook può essere rimossa cancellando SHKFacebook.h e SHKFacebook.m.
Nota: è necessario controllare l'importazione della classe per evitare errori.
Il nuovo modo di fare questo con l'ultima versione di ShareKit 2.0 è quello di sovrascrivere i seguenti metodi nel SHKConfigurator (estendendo DefaultSHKConfigurator.m)
// SHKActionSheet settings
- (NSNumber*)showActionSheetMoreButton {
return [NSNumber numberWithBool:true];// Setting this to true will show More... button in SHKActionSheet, setting to false will leave the button out.
}
/*
Favorite Sharers
----------------
These values are used to define the default favorite sharers appearing on ShareKit's action sheet.
*/
- (NSArray*)defaultFavoriteURLSharers {
return [NSArray arrayWithObjects:@"SHKTwitter",@"SHKFacebook", @"SHKReadItLater", nil];
}
- (NSArray*)defaultFavoriteImageSharers {
return [NSArray arrayWithObjects:@"SHKMail",@"SHKFacebook", @"SHKCopy", nil];
}
- (NSArray*)defaultFavoriteTextSharers {
return [NSArray arrayWithObjects:@"SHKMail",@"SHKTwitter",@"SHKFacebook", nil];
}
Il modo più semplice è quello di modificare "SHKSharers.plist" e mantenere i servizi di cui hai bisogno.
- 1. Come aggiungere il selettore di date nel foglio di azione?
- 2. Come far funzionare il Sharekit
- 3. come gestire "sendDidFinish" nel sharekit
- 4. ShareKit con MonoTouch come?
- 5. foglio di azione sociale (come su iOS 6)
- 6. Button evento nel Display Azione Foglio
- 7. Foglio di partenza con movimento Pulsanti di azione mobile
- 8. ActionBarSherlock (ABS): come personalizzare il testo della modalità di azione close item?
- 9. Come presentare il foglio di azione di UIAlertController mentre la tastiera è attiva?
- 10. Magento- Come personalizzare il carrello
- 11. Come personalizzare il sottotitolo shadowbox.js?
- 12. Come personalizzare il nome di build Jenkins?
- 13. Come personalizzare il colore dell'interruttore di avvio
- 14. Difficoltà nell'aggiungere ShareKit al progetto
- 15. Come posso personalizzare UIAlertAction in UIAlertController per iOS8?
- 16. ShareKit supporta iOS 5 ora?
- 17. Come modificare il foglio di stile predefinito?
- 18. Come creare un pulsante di azione mobile trasformandolo in un singolo foglio di materiale
- 19. Come personalizzare l'aspetto di UIPrintInteractionController
- 20. Come personalizzare l'id di Phoenix
- 21. Come posso ottenere il foglio di stile @import per sovrascrivere il foglio di stile principale?
- 22. Scheda di azione Android
- 23. Come visualizzare il foglio di azione di condivisione iOS 6 predefinito con le opzioni di condivisione disponibili?
- 24. Come personalizzare il prompt PostgreSQL/psql?
- 25. Come personalizzare il metodo to_json in rails3?
- 26. Come personalizzare il layout StatusBar WPF?
- 27. Come personalizzare il toast in Android
- 28. Come posso personalizzare il pulsante Sfoglia?
- 29. Come personalizzare l'URL di Jekyll?
- 30. Come personalizzare il player implementato usando SWFobject?
... indica questa pagina. –