Desidero creare una classe che possa ereditare da due classi personalizzate. Hai qualche idea per fare questo per favore? Si prega di vedere di seguito il mio esempio:Multi ereditarietà per IOS
di prima classe:
@interface UIZoomableView : UIView
{
UITapGestureRecognizer *_tapGestureRecognizer;
}
e realizzazione:
- (void)onDoubleTap:(UITapGestureRecognizer *)sender
{
CGSize newSize;
CGPoint centerPoint = self.center;
if ([self isSmall])
{
newSize = [self bigSize];
}
else
{
newSize = [self smallSize];
}
[UIView animateWithDuration:0.3 animations:^{
self.size = newSize;
self.center = centerPoint;
}];
}
Seconda classe:
@interface UIDraggableView : UIView
UIPanGestureRecognizer *_panGestureRecognizer;
@end
implementazione:
- (void)handlePan:(UIPanGestureRecognizer*)sender
{
..
}
Voglio creare una vista personalizzata che può essere zoomabile e trascinabile. Hai qualche idea per fare questo per favore? (senza copiare il codice ..)
Penso qualcosa di simile ai protocolli ma voglio il valore predefinito per le classi di base? Come posso implementare questo protocollo usando o protocolli simili.
Grazie per qualsiasi risposta!
Objective-C non supporta l'ereditarietà multipla, si potrebbe trovare la soluzione migliore per essere protocolli. –
Come posso implementarlo per favore? non voglio la proprietà che è delegata .. e voglio il valore di default per esempio nella vista ingrandibile voglio le piccole dimensioni predefinite, se la sottoclasse non sovrascrive la funzione, la classe restituisce (50,50). – Rebecca
Non esiste un modo veramente valido per impostare valori predefiniti per un protocollo, in quanto dovrebbe essere non implementato. Quello che potresti fare è ereditare da una classe che implementa il protocollo, dai uno sguardo a questo aspetto: https://gist.github.com/paulrehkugler/9647085 –