Субъективный Си / Говнокод #17094 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
@implementation SlideMenuNavigationBar

- (void)layoutSubviews
{
    [super layoutSubviews];

    for (UIView *aView in self.subviews) {
        
        // Correcting menu toggle button position
        if ([[aView.class description] isEqualToString:@"UIButton"] && aView.frame.origin.x < self.frame.size.width/2) {
            CGRect frame = aView.frame;
            frame.origin.x = 12; // 8 for correlation
            frame.origin.y = -1; // 1 for correlation
            aView.frame = frame;
        }
        
        if (aView.frame.origin.x > self.frame.size.width/2 && !isIPad && ![[aView.class description] isEqualToString:@"ColoredView"]) {
            CGRect frame = aView.frame;
            frame.origin.x = 260; // 8 for correlation
            frame.origin.y = -1;  // 1 for correlation
            aView.frame = frame;
        }
        
        // Correcting back button and right button positions
        if ([[aView.class description] isEqualToString:@"_UINavigationBarBackIndicatorView"]) {
            CGRect frame = aView.frame;
            frame.origin.y = [self.class navigationBarHeight] - kDefaultNavigationBarHeight + 5; // 5 for correlation
            aView.frame = frame;
        }
        if ([[aView.class description] isEqualToString:@"UINavigationButton"]) {
            CGRect frame = aView.frame;
            frame.origin.y = [self.class navigationBarHeight] - kDefaultNavigationBarHeight + 2; // 2 for correlation
            aView.frame = frame;
        }
        
        if ([aView isKindOfClass:[NavigationBarButton class]]) {
            CGRect frame = aView.frame;
            frame.origin.x = 278; // 8 for correlation
            frame.origin.y = 6;   // 1 for correlation
            aView.frame = frame;
        }
    }
}

@end

фиг знает что думали :D

Запостил: l0gg3r l0gg3r, (Updated )

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

  • я как раз изучаю язык - поясните в чём говнокожесть? и можно ли вообще без этоих дров в коде обойтись? я вроде в iOS 8 SDK нашёл UIKit, и всякие автолейауты и примеры universal application - изучаю, и нафига тут патчить navigation window titlebar? Это для старых iPhone 4? iOS SDK 7.1? потому как в новых и используют автолейауты, чтобы пиксели не патчить, а кроме того, тут не искпользуется коэффециент x2, для Retina и iPhone 6, поэтому не будет патчиться корректно, IMHO. Но я полный нуб, чтото из этого говнокода вообще имеет смысл?
    Ответить
    • Где говно - да тут везде говно. Одно определение класса по текстовому дескрипшену чего стоит, а магические числа с фреймами, а перебор через self.subviews. Да еще и может быть такой в методе - (void)layoutSubviews не
      умесьтен.
      Ответить

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

Из-за тебя ушел bormand, guest!

    А не использовать ли нам bbcode?


    8