Ich versuche, eine UIBubbleTableView
in meinem UITableview
zu erstellen. Ich habe ein Beispiel im Internet gesucht und genau dasselbe versucht. Aber das Beispiel verwendet xib, und ich verwende storyboard
. Ich habe die angegebene Datei in meinem Projekt importiert. Aber wenn ich versuche, diesen Code auszuführen, wird es abgestürzt saying.-Erstellen einer Blase in UITableView für Chat-Anwendung in iOS
- [UITableView setBubbleDataSource:]: Unbekannter Selektor gesendet Instanz
Hier unten ist das, was ich versuchte.
@interface ChatController(){
IBOutlet UIView *textView;
IBOutlet UITextField *textF1;
NSMutableArray *bubbleData1;
IBOutlet UIBubbleTableView *bubbleTbl;
}
-(void)viewDidLoad {
[super viewDidLoad];
//bubble data
NSBubbleData *heyBubble1 = [NSBubbleData dataWithText:@"Hey, halloween is soon" date:[NSDate dateWithTimeIntervalSinceNow:-300] type:BubbleTypeSomeoneElse];
heyBubble1.avatar = [UIImage imageNamed:@"avatar1.png"];
NSBubbleData *photoBubble1 = [NSBubbleData dataWithImage:[UIImage imageNamed:@"halloween.jpg"] date:[NSDate dateWithTimeIntervalSinceNow:-290] type:BubbleTypeSomeoneElse];
photoBubble1.avatar = [UIImage imageNamed:@"avatar1.png"];
NSBubbleData *replyBubble1 = [NSBubbleData dataWithText:@"Wow.. Really cool picture out there. iPhone 5 has really nice camera, yeah?" date:[NSDate dateWithTimeIntervalSinceNow:-5] type:BubbleTypeMine];
replyBubble1.avatar = nil;
bubbleData1 = [[NSMutableArray alloc] initWithObjects:heyBubble1, photoBubble1, replyBubble1, nil];
bubbleTbl.bubbleDataSource = self;
}
Die App stürzt in dieser Zeile ab. - bubbleTbl.bubbleDataSource = self
;
Ich habe versucht, die 'bubbleTbl' Steckdose zu meinem tableview
, Aber konnte nicht verbinden es daher ich weiß nicht, wie 'bubbleDataSource
' zu meinem Tableview
.
Kann mir bitte jemand helfen. Jede Hilfe ist willkommen
Bearbeiten-
ich diese Methode implementiert haben und einen Haltepunkt an diesem Verfahren festgelegt. Aber diese Methode wird niemals ausgeführt.
- (NSInteger)rowsForBubbleTable:(UIBubbleTableView *)tableView
{
NSLog(@"bubble count %lu",(unsigned long)[bubbleData1 count]);
return [bubbleData1 count];
}
EDIT 2-
Code Video in blasen-
UIEdgeInsets insetss = { .left = 180, .right = 10, .top =10, .bottom = 200 };
NSBubbleData *videodata=[NSBubbleData dataWithView:_playerViewController.view date:[NSDate dateWithTimeIntervalSinceNow:0] type:BubbleTypeMine insets:(insetss)];
[bubbleData1 addObject:videodata];
EDIT 3--
NSString *stringVideoName = @"videobuild.mov";
NSString *stringVideoPath = [[NSBundle mainBundle] pathForResource:stringVideoName ofType:nil];
NSAssert(stringVideoPath, @"Expected not nil video file");
NSURL *urlVideoFile = [NSURL fileURLWithPath:stringVideoPath];
NSAssert(urlVideoFile, @"Expected not nil video url");
_playerViewController = [[AVPlayerViewController alloc] init];
_playerViewController.player = [AVPlayer playerWithURL:urlVideoFile];
_playerViewController.view.frame = CGRectMake(10.0, 0.0, 150.0 , 80.0); // self.view.bounds;
_playerViewController.showsPlaybackControls = YES;
Wie viele Zeilen haben Sie in UITableView? Wenn Zeilen> 0 zählen, dann markieren Sie Zellen in cellForRowAtIndexPath – MirMiratom
Sind Sie sicher, dass Sie eine Referenz auf bubbleTbl haben? Wenn bubbleTbl == nil, ruft rowsForBubbleTable nicht auf. Setzen Sie den Haltepunkt auf bubbleTbl.bubbleDataSource = self und überprüfen Sie. Und diese Referenz muss stark sein – MirMiratom
Ja, ich bin sicher, dass die Referenz nicht Null ist. – ammy1