NotificationChat chat fotó megjelenítés!

XCode AppleEgy régi olvasó felkért, hogy az általa használt NotificationChat magyar fejlesztéshez kicsit nyúljak hozzá mert nem tartalmazza a chat részben a fotó nagyobb méretben való megtekintést !! Régen már tanulmányoztam a megoldást így volt rálátásom mivel már jó pár cikket írtam a Parse.com SDK-ról ,de azóta ahogy néztem jó pár frissítésen ment át a NotificationChat !!
Két dolog kell a megoldáshoz:
1. NotificationChat  🙂
2. Kell egy fotó megjelenítő ami mutat is valahogy, erre én a MXLMediaView ajánlom !!
Ha a chat modul letöltve akkor a MXLMediaView-ből 4 db fájlt kell áthúzni mégpedig:  https://github.com/KiranPanesar/MXLMediaView/tree/master/MXLMediaView !!
MXLMediaView.h , MXLMediaView.m , UIImage+ImageEffects.h , UIImage+ImageEffects.m

Haladunk haladunk 🙂
Irány a NotificationChat-be és azon belül keresd meg a ChatView.h fájlt majd add hozzá : #import MXLMediaView.h” és az @interface-hez delegáln kell <MXLMediaViewDelegate> !

Mehetünk a ChatView.m fájlban , első lépés:
@interface ChatView (){

NSTimer *timer;
BOOL isLoading;
NSString *roomId;
NSMutableArray *users;
NSMutableArray *messages;
NSMutableDictionary *avatars;
JSQMessagesBubbleImage *bubbleImageOutgoing;
JSQMessagesBubbleImage *bubbleImageIncoming;
JSQMessagesAvatarImage *avatarImageBlank;

NSMutableArray *messagePhoto; // ez az új amit mi adtunk hozzá !!
}

(void)viewDidLoad
{// itt adjuk hozzá
messagePhoto = [[NSMutableArray alloc] init];
}

Mehetünk az adat beolvasáshoz mert az adatot le kell kérni amit majd megjelenítünk !
(void)loadMessages
{// hozzá kell adni a messagePhoto-t

if (isLoading == NO)
{
isLoading = YES;
JSQMessage *message_last = [messages lastObject];
PFQuery *query = [PFQuery queryWithClassName:PF_CHAT_CLASS_NAME];
[query whereKey:PF_CHAT_ROOMID equalTo:roomId];
if (message_last != nil) [query whereKey:PF_CHAT_CREATEDAT greaterThan:message_last.date];
[query includeKey:PF_CHAT_USER];
[query orderByDescending:PF_CHAT_CREATEDAT];
[query setLimit:50];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error)
{
if (error == nil)
{
self.automaticallyScrollsToMostRecentMessage = NO;
for (PFObject *object in [objects reverseObjectEnumerator])
{
[self addMessage:object];
//itt van ha keresnétek 🙂
 [self messagePhoto:object]; //    <—————————–
}
if ([objects count] != 0)
{
[self finishReceivingMessage];
[self scrollToBottomAnimated:NO];
}
self.automaticallyScrollsToMostRecentMessage = YES;
}
else [ProgressHUD showError:@“Network error.”];
isLoading = NO;
}];
}

}

Megyünk tovább mert a NotificationChat is a JSQMessagesViewController használja ezért alapból kész a buborék érintésének a meghívás része, így nincs sok dolgunk 😀 ! ChatView.m végén találjátok meg !!

(void)collectionView:(JSQMessagesCollectionView *)collectionView didTapMessageBubbleAtIndexPath:(NSIndexPath *)indexPath

{
//Első lépésben dobunk egy Dictionary-t majd kiszűrjük, hogy text vagy image és ha ez megvan akkor a kép megjelenítőt aktiváljuk !
//1.
NSDictionary *dict = messagePhoto[indexPath.item];
//2.
if (dict[@”picture”] == nil)
{ NSLog(@”text”);}
if (dict[@”picture”] != nil)
{
//3.
PFFile *Picture = dict[@”picture”];
[Picture getDataInBackgroundWithBlock:^(NSData imageData, NSError error)
{
if (error == nil)
{
MXLMediaView *mediaView = [[MXLMediaView alloc] init];
[mediaView setDelegate:self];

[mediaView showImage:[UIImage imageWithData:imageData] inParentView:self.navigationController.view completion:^{
dispatch_async(dispatch_get_main_queue(), ^{

});
}];
}
}];
}
}

Lehet futtatni a kódot !!
ÉÉÉÉSSSSSSSSSSSSSSS ennnnnnnnnnnnnnnnyyyyyyyyyyyyyyyyyyyiii   😀 😀 😀
Érdemes figyelni a NotificationChat frissítéseit mert egy szépen felépített alkalmazást kaptok !!
Gratulálok a fejlesztőnek, szép munka !!

Klacsó Péter Xcode Developer

Reklámok

Hozzászólás

Kategória: Források

Vélemény, hozzászólás?

Adatok megadása vagy bejelentkezés valamelyik ikonnal:

WordPress.com Logo

Hozzászólhat a WordPress.com felhasználói fiók használatával. Kilépés /  Módosítás )

Google kép

Hozzászólhat a Google felhasználói fiók használatával. Kilépés /  Módosítás )

Twitter kép

Hozzászólhat a Twitter felhasználói fiók használatával. Kilépés /  Módosítás )

Facebook kép

Hozzászólhat a Facebook felhasználói fiók használatával. Kilépés /  Módosítás )

Kapcsolódás: %s