Добавление нового сообщения в друзья в стиле мессенджера facebook — uitextfield / uitextview

Я пытаюсь создать uitextview для формирования нового сообщения в стиле fb messenger.. как показано на рисунке..

fb-image

В частности, как сделать uitextview, который находится вверху таблицы (показывает список выбранных друзей). Я хочу создать uitextview со следующими свойствами.

1) Он расширяется/сжимается по мере того, как в него/из него добавляются/удаляются новые имена.

2) TextView редактируется, но не редактируется частично, т.е. имя либо стирается backspace, либо нет (например, как это происходит в fb)

3) Возможно, это редактирование происходит в красивой эстетике (аналогично fb, сделайте цвет всего текста синим, прежде чем убрать его назад)


person Arpit Goel    schedule 01.02.2015    source источник
comment
1) textView.height = textView.contentSize.height, я не понимаю, о чем вы спрашиваете в двух других... Я не использую приложение.   -  person hidden-username    schedule 02.02.2015
comment
Если вы стираете имя в приложении, оно стирает все имя сразу, например, если имя «Майк Гамсон», текстовое поле не позволяет вам стереть его на «Майк Гамс», либо стереть его полностью на backspace.   -  person Arpit Goel    schedule 02.02.2015
comment
объектив-с или быстрый?   -  person hidden-username    schedule 02.02.2015
comment
Objective-c предпочтительнее, делает ли Swift это чрезвычайно простым? Я тоже в порядке, переключаясь на свифт ..   -  person Arpit Goel    schedule 02.02.2015


Ответы (1)


Прошло некоторое время с тех пор, как я использовал Objective-C, но я считаю, что это правильно. Хотя может и не быть. И да, я бы в конечном итоге переключился на быстрый.

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {

//you should have an array of names as a property, not here.
NSMutableArray* nameArray = [@"sam"];
if ([text  isEqual: @""]) {// this is delete

    for (NSString *name in nameArray) {
        NSRange nameRange = [textView.text rangeOfString:name];

        if (nameRange.location == range.location) {
            textView.text = [textView.text stringByReplacingCharactersInRange:nameRange withString:@""];
           [nameArray removeObject:name]
           return false;
        }

    }




}

return true;

}

person hidden-username    schedule 01.02.2015