1. Objective C / Говнокод #12582

    −88

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    // поднимаем и опускаем панель голосования при входящем вызове
            for (ASSlideView* slideView in self.view.subviews)
                if ([slideView isKindOfClass:[ASSlideView class]])
                    for (UIScrollView* scroll in slideView.subviews)
                        if ([scroll isKindOfClass:[UIScrollView class]])
                            for (UIView* view in scroll.subviews)
                                if ([view isKindOfClass:[UIView class]])
                                    for (KVRateView* rateView in view.subviews)
                                        if ([rateView isKindOfClass:[KVRateView class]]){
                                            [rateView setFrame:CGRectMake(rateView.frame.origin.x, [[UIScreen mainScreen] bounds].size.height - 140 - [[UIApplication sharedApplication]statusBarFrame].size.height, rateView.frame.size.width, rateView.frame.size.height)];
                                            break;
                                        }

    No comments

    Запостил: mas_an, 13 Февраля 2013

    Комментарии (17) RSS

    • Увы, иногда приходится перебирать subview, чтобы кастомизировать что-то плохо кастомизируемое.
      Другое дело, что тут проблема в архитектуре, ибо компонент целиком кастомный и мы его всего лишь двигаем.
      Так что плюсану.
      Ответить
    • Компонент кастомный, и автор так решил проблему доступа к приватному полю, вместо того, чтоб дописать компоненту однострочный публичный метод.
      Ответить
      • Это понятно.
        Что вот, интересно, у таких людей в голове творится вообще? Пробросить публичный метод - лень, перебирать сабвью (при этом четко зная, что на что ложится) - не лень.
        Ответить
        • По моему это не лень, а наоборот, излишнее трудолюбие. Вот мне-бы как раз было точно лень такую ахинею писать, я бы лучше завтыкал на час, и придумал лучшее решение, (допустим оно неочевидно)
          Ответить
          • Прикрутить xpath. Он же не только для XML подходит, а вообще для произвольных древовидных структур с атрибутами...
            KVRateView* rateView = [XPath evaluate: "ASSlideView/UIScrollView/UIView/KVRateView" on: self]
            P.S. Объективного си не знаю, с синтаксисом могу нагнать ;)
            Ответить
      • А аффтар у вас давно работает? )
        Ответить
        • Ищешь вашего старого друга?)
          Ответить
          • Ага. Без его перлов даже как-то скучно. Жизни красок не хватает.
            Ответить
            • Пол года работал. Уже ушел, теперь я разгребаю вот...
              Ответить
            • Ты как-то советовал посмотреть особый вариант стек-оверфлоу, на котором принято отвечать в индусском стиле.
              Ответить
    • if([author isKindOfClass:[NSDebil class]])
      Ответить
      • if([author isKindOfClass:[NSDebil class]])
            for (Hand* hand in author.hands)
                if ([hand fromAss])
                    [hand tearOff]
        Ответить
        • Нотации перемешаны!!!111адин
          [author hands]
          Ответить
          • > Нотации перемешаны!!!
            Объективного Си не знаю, брал куски из кода ОП'а ;)

            P.S. А что делает author.hands?
            Ответить
            • На этапе компиляции преобразуется в [author hands]. Точечка - сахарок для любителей более других ОО языков.
              Ответить

    Добавить комментарий