2017-01-06 3 views
6

Я создаю приложение для чата. Мне нужно растянуть изображение bubble в соответствии с текстом, как и другие chatapps. Я использую ограничения AutoLayout. Размер изображения, содержащий пузырьковый повышатель, отлично. (Я дал цвет фона yello). Изображение пузыря не растягивается.Растяжение изображения пузыря в приложении чата

enter image description here

Я добавил эти ограничения:

enter image description here

Для растягивания изображения я добавил это:

let myImage = self.imageNamed("Bubble_Me") 
     let new_Image = myImage.stretchableImage(withLeftCapWidth: 15, topCapHeight: 14) 
     cell.bubbleImage.image = new_Image 

Если кто-нибудь есть идеи по этому поводу, пожалуйста, ответьте , Спасибо заранее.

+0

сделал вы разрезали изображение в Assets.xcassets? – rv7284

+0

Да, один и тот же срез изображения работает в другом коде, где все реализовано программно. Я хочу сделать то же самое с автозапуском. Он не работает с автозапуском. – SNarula

+0

Пожалуйста, используйте изображение nini patch https://github.com/shiami/SWNinePatchImageFactory –

ответ

0

Сначала получите размер вашего текста, используя это.

UIFont *font = [UIFont systemFontOfSize:14.0]; 
    NSDictionary *attrsDictionary = [NSDictionary dictionaryWithObject:font 
                   forKey:NSFontAttributeName]; 
    NSAttributedString *attrString = [[NSAttributedString alloc] initWithString:message attributes:attrsDictionary]; 

    CGRect paragraphRect = 
    [attrString boundingRectWithSize:CGSizeMake(tableView.frame.size.width - 20 , CGFLOAT_MAX) 
           options:(NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading) 
           context:nil]; 

После получения кадра вашего текста, то получить высоту от рамки текста и поставить высоту в ImageView пузыря. это все сделано в пользовательский класс tableViewCell в -(void)layoutSubviews method.

0

Что вы должны сделать, это установить изображение в фоне TextView так, что она простирается столько на TextView

text.backgroundColor = UIColor(patternImage: UIImage(named:"bg.png")!) 

Вы должны всегда использовать «Изменчивые растровые изображения», более известные как 9-патч-изображения для этого типа проблем.

0

Постарайся это @SNarula

cell.bubbleImage.image = [[UIImage imageNamed:@"Bubble_Me"] resizableImageWithCapInsets:UIEdgeInsetsMake(20, 20, 20, 20) resizingMode:UIImageResizingModeStretch]; 
0

попробовать это один:

cell.bubbleImage.image = [[UIImage imageNamed:@"sender.png"] stretchableImageWithLeftCapWidth:2 topCapHeight:2]; 
Смежные вопросы