Как отметить пользователей с " @ " в приложении, таком как Instagram


Я создаю приложение, которое имеет общий доступ к фотографиям, и я пытаюсь добавить функциональность, чтобы упомянуть (или пометить) пользователей. Twitter Facebook-это то, что изначально начиналось с использования " @ " с именем пользователя для тегов пользователей, но теперь все, от Facebook до Instagram, используют его. Это что-то, что реализовано на стороне iOS или в задней части? В настоящее время я программирую бэк-энд в Django, но по какой-то причине я думаю, что это будет сделано на конце iOS. Их на удивление очень мало информация о том, как упомянуть пользователей в Django или iOS.

В принципе, при создании поста я хотел бы создать упоминание пользователя, введя "@", за которым следует имя пользователя (без пробелов), которое будет отображать их имя в посте следующим образом: @username, которое будет кликабельным, что приведет к профилю этого пользователя. Если я неясно в любом случае с моим вопросом, пожалуйста, дайте мне знать. Любая помощь, например, указать мне в правильном направлении, где начать с чего-то вроде этого, буду очень признателен. Спасибо! :)

2 5

2 ответа:

Слушайте ввод на iOS. Когда пользователь вводит @, за которым следует символ, вызовите url-адрес на вашем сервере (например, /user/lookup/?username=joe), который перенаправляет к представлению, которое ищет пользователей, начиная с joe. Верните его как json и отобразите в раскрывающемся списке.

Источник: Как упомянуть пользователей с " @ " в приложении, таком как Instagram

Вы можете попробовать что-то вроде этого в делегате UITextView:

- (void)textViewDidChange:(UITextView *)textView
{
    _words = [self.textView.text componentsSeparatedByString:@" "];
    NSPredicate* predicate = [NSPredicate predicateWithFormat:@"SELF BEGINSWITH[cd] '@'"];
    NSArray* names = [_words filteredArrayUsingPredicate:predicate];
    if (_oldArray)
    {
        NSMutableSet* set1 = [NSMutableSet setWithArray:names];
        NSMutableSet* set2 = [NSMutableSet setWithArray:_oldArray];
        [set1 minusSet:set2];
        if (set1.count > 0)
            NSLog(@"Results %@", set1);
    }
    _oldArray = [[NSArray alloc] initWithArray:names];
}

Где _words, _searchResults и _oldArray-это NSArrays.