Merhabalar
Burada tahmin ettigim uzere tableview kullaniliyor ve her bir bubble bir cell'i temsil ediyor. Girilen yada gelen her text'e gore cell'in boyutu ayarlaniyor. Oncelikle eger .xib ile yaziyorsan projeni, olusturdugun cell'de autolayout'i kapat ve sag taraftan "show the size inspecter" alanindan sola asagi ve yukari dayali hale getir koydugun bubble imajini. Bu sekilde cell'in buyudugu zaman kendiliginden bubble'inin boyu artacaktir. Ama buyulup kuculmelerde bubble imajinin sagi solu oynayacagindan imajda bozulmalar olacaktir. Bunun icin ise; yine imaja tikla ve sag tarafta "show the attributes inspecter" alaninda en asagida strecthing alani var orada su degerleri ver X: 0,5 Y:0,5 width: 0,45 height: 0,45 bu degerlerde tam emin degilim. Deneyerekte yapabilirsin. Bu degerler senin imajinin tam ortadan saga sola yukari ve asagi uzayip kisalmasini saglar.
Bunlari yaptiktan sonra tableview delegate'i olan cellForRowIndexPath methodunun icerisinde label'inin ve imajinin boyutunu ayarlamak. Asagi yukari ayarlamasini .xib'ten yaptik. Ama sag yada sola dogru uzamasini kod ile yapmamiz lazim.
CGSize size =[@"yazilacak string" sizeWithFont:[UIFont fontWithName:@"Helvetica" size:18] constrainedToSize:CGSizeMake(280, 400) lineBreakMode:NSLineBreakByWordWrapping];
UIImageView *bubbleImageView = (UIImageView *)[cell viewWithTag:1];
CGRect imgFrame = bubbleImageView.frame;
imgFrame.size.width = size.width + 15;
headerBackgroundImageView.frame = imgFrame;
Yukardaki kod imajin sag tarafa dogru max 280 pixel uzamasini sagliyor.
Ayni seyi label icinde yapmak gerekiyor. Ama .xib'te label'in lines'ina 0 vermelisin.
UILabel *label = (UILabel *)[cell viewWithTag:2];
label.text = @"yazilacak string";
CGRect frm = label.frame;
frm.size.width = size.width;
label.frame = frm;
Bunlari yaptiktan sonra cell'in height'ini belli bir orana gore buyutmelisin.
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
float height = 0;
CGSize size =[@"yazilacak string" sizeWithFont:[UIFont fontWithName:@"Helvetica" size:18] constrainedToSize:CGSizeMake(280, 400) lineBreakMode:NSLineBreakByWordWrapping];
height = size.height + 30.0f ;
return height;
}
Cevap biraz gec oldu ama umarim yardimci olabilmisimdir.
Iyi Calismalar Dilerim.