2016-07-12 2 views
0

Я пытаюсь создать UIBubbleTableView в моем UITableview. Я искал пример в Интернете и пробовал точно то же самое. Но в примере используется xib, и я использую storyboard. Я импортировал файл, указанный в примере в моем проекте. Но когда я пытаюсь запустить этот код, он получает разбился saying.-создание пузыря в UITableView для приложения чата в iOS

- [UITableView setBubbleDataSource]: непризнанные селектор направлен например

Здесь ниже того, что я пытался.

@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; 
} 

приложение выходит из строя на этой линии. - bubbleTbl.bubbleDataSource = self;

Я попытался соединить выход «bubbleTbl» к моим tableview, но не смог подключить его, следовательно, я не знаю, как «установить» bubbleDataSource моих Tableview.

Может кто-нибудь, пожалуйста, помогите мне. Любая помощь приветствуется

Edit-

Я реализовал этот метод и установить контрольную точку на этом методе. Но этот метод никогда не выполняется.

- (NSInteger)rowsForBubbleTable:(UIBubbleTableView *)tableView 
{ 

NSLog(@"bubble count %lu",(unsigned long)[bubbleData1 count]); 
return [bubbleData1 count]; 
} 

EDIT 2-

код для показа видео в пузырьковых

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; 

ответ

1

Добавить в XIb/раскадровки к UITableView в классе - UIBubbleTableView

enter image description here

+0

Сколько строк у вас в UITableView? Если количество строк> 0, то проверьте ячейки в cellForRowAtIndexPath – MirMiratom

+0

Вы уверены, что у вас есть ссылка на bubbleTbl? если bubbleTbl == nil, то строкиForBubbleTable не будут вызывать. Установите точку останова на bubbleTbl.bubbleDataSource = self и проверьте. И эта ссылка должна быть сильной. – MirMiratom

+0

Да, я уверен, что ссылка не ноль. – ammy1

Смежные вопросы