2017-01-06 47 views
6

Tworzę aplikację do czatu. Muszę rozciągnąć obraz bubble zgodnie z tekstem podobnym do innego chatapps. Używam ograniczeń AutoLayout. Rozmiar obrazu zawierającego bańkę Increaser idealnie. (Dałem temu kolor tła). Obraz bąbelków nie jest rozciągany.Rozciąganie obrazu bąbelkowego w aplikacji Czat

enter image description here

Dodałem te ograniczenia:

enter image description here

do rozciągania obrazu Dodałem to:

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

Jeśli ktoś ma pomysł na ten temat, proszę o odpowiedź . Z góry dzięki.

+0

skończyłeś plasterkach obraz w Assets.xcassets? – rv7284

+0

Tak, to samo cięcie obrazu działa w innym kodzie, w którym wszystko jest zaimplementowane programowo. Chcę zrobić to samo z autolayouts. Nie działa z autolayouts. – SNarula

+0

Proszę użyć obrazu łatki nini https://github.com/shiami/SWNinePatchImageFactory –

Odpowiedz

0

Najpierw uzyskaj rozmiar tekstu za pomocą tego.

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]; 

Po uzyskaniu ramkę tekstu następnie uzyskać wysokość z ramki tekstu i umieścić wysokości do ImageView bańki. to wszystko zrobić w niestandardowej klasy tableViewCell do -(void)layoutSubviews method.

0

Co należy zrobić, aby ustawić obraz w tle TextView tak, że rozciąga się aż do TextView

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

Należy zawsze używać "Resizable Bitmaps" lepiej znane jako obrazy 9-plasterkowe dla tego typu problemów.

0

spróbować tej @SNarula

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

spróbować tego:

cell.bubbleImage.image = [[UIImage imageNamed:@"sender.png"] stretchableImageWithLeftCapWidth:2 topCapHeight:2];