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

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
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
  51. 51
  52. 52
  53. 53
  54. 54
  55. 55
  56. 56
  57. 57
  58. 58
  59. 59
  60. 60
  61. 61
  62. 62
  63. 63
  64. 64
  65. 65
  66. 66
  67. 67
  68. 68
  69. 69
  70. 70
  71. 71
  72. 72
  73. 73
  74. 74
  75. 75
  76. 76
  77. 77
  78. 78
  79. 79
  80. 80
  81. 81
  82. 82
  83. 83
  84. 84
  85. 85
  86. 86
  87. 87
  88. 88
  89. 89
  90. 90
  91. 91
  92. 92
  93. 93
  94. 94
  95. 95
  96. 96
  97. 97
  98. 98
  99. 99
- (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
	UITableViewCell *cell = nil;

	if (indexPath.row == self.titles.count - 1)
	{
		cell = [tableView dequeueReusableCellWithIdentifier:@"settingButtonCell" forIndexPath:indexPath];

		SWSettingButtonCell *scell = (SWSettingButtonCell *) cell;

		[scell.settingButton setTitleForAllStates:self.titles[indexPath.row]];

		[scell.settingButton bk_removeEventHandlersForControlEvents:UIControlEventTouchUpInside];

		scell.settingIcon.visible = YES;

		@weakify(self);
		[scell.settingButton bk_addEventHandler:^(id sender) {
			[UIAlertView bk_showAlertViewWithTitle:@"Logout"
										   message:@"Do you want to logout?"
								 cancelButtonTitle:@"NO"
								 otherButtonTitles:@[@"YES"]
										   handler:^(UIAlertView *alertView, NSInteger buttonIndex) {
											   @strongify(self);

											   if (buttonIndex != 0)
											   {
												   [[SWCore instance] logout];
                                                   // fix
                                                   [SVProgressHUD show];
                                                   // end fix
											   }
										   }];
		}                      forControlEvents:UIControlEventTouchUpInside];
	}
	else if (indexPath.row == self.titles.count - 2)
	{
		cell = [tableView dequeueReusableCellWithIdentifier:@"settingButtonCell" forIndexPath:indexPath];

		SWSettingButtonCell *scell = (SWSettingButtonCell *) cell;

		[scell.settingButton setTitleForAllStates:self.titles[indexPath.row]];

		[scell.settingButton bk_removeEventHandlersForControlEvents:UIControlEventTouchUpInside];

		scell.settingIcon.visible = NO;

		@weakify(self);
		[scell.settingButton bk_addEventHandler:^(id sender) {

			@strongify(self);
			[self performSegueWithIdentifier:@"pushSettingsSegue" sender:nil];
		}                      forControlEvents:UIControlEventTouchUpInside];
	}
	else
	{
		cell = [tableView dequeueReusableCellWithIdentifier:@"settingCell" forIndexPath:indexPath];

		SWSettingCell *scell = (SWSettingCell *) cell;

		scell.settingLabel.text = self.titles[indexPath.row];
		[scell.settingIcon setImage:self.icons[indexPath.row]];

		switch (indexPath.row)
		{
			case 0:
			{
				scell.settingSwitch.on  = [[SWCore account].settings[[NSString stringWithFormat:SETTINGS_PROFILE_VISIBILITY]] isEqualToString:SETTING_PUBLIC];
				scell.settingIcon.image = scell.settingSwitch.isOn ? [UIImage imageNamed:@"settings_profile_icon_on"] : [UIImage imageNamed:@"settings_profile_icon_off"];
			}
				break;

			case 1:
			{
				scell.settingSwitch.on  = [[SWCore account].settings[[NSString stringWithFormat:SETTINGS_EVENTS_VISIBILITY]] isEqualToString:SETTING_PUBLIC];
				scell.settingIcon.image = scell.settingSwitch.isOn ? [UIImage imageNamed:@"settings_events_button_on"] : [UIImage imageNamed:@"settings_events_button_off"];
			}
				break;

			case 2:
			{
				scell.settingSwitch.on  = [[SWCore account].settings[[NSString stringWithFormat:SETTINGS_PHONE_VISIBILITY]] isEqualToString:SETTING_PUBLIC];
				scell.settingIcon.image = scell.settingSwitch.isOn ? [UIImage imageNamed:@"settings_phone_button_on"] : [UIImage imageNamed:@"settings_phone_button_off"];
			}
				break;

			case 3:
			{
				scell.settingSwitch.on  = [[SWCore account].settings[[NSString stringWithFormat:SETTINGS_PHOTOS_VISIBILITY]] isEqualToString:SETTING_PUBLIC];
				scell.settingIcon.image = scell.settingSwitch.isOn ? [UIImage imageNamed:@"settings_photos_button_on"] : [UIImage imageNamed:@"settings_photos_button_off"];
			}
				break;

			default:
				break;
		}

		scell.settingSwitch.tag = indexPath.row;
		[scell.settingSwitch bk_removeEventHandlersForControlEvents:UIControlEventValueChanged];

Один из самых классных методов cellForRowAtIndexPath что я когда-либо видел

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

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

  • после предыдущего сообщения показалось, что чел увидел, что cell перезаписываются и addEvent осуществляется каждый раз к новой кнопке. Хотя не проверял. Все еще считаю глупостью писать touchUp handler кнопки внутри cellForRowAtIndexPath:
    Ответить
  • > Один из самых
    Пфффф..... А я опять со своей волшебной ссылкой: http://pastebin.com/UaTdN6K2

    Осторожно, после просмотра ссылки ваша жизнь больше не будет прежней. И да, это из проекта, который я поддерживал.
    Ответить
  • var stat=function(i,e){ var text=$(e).text().toLowerCase().replace(/\s+/g, ''); if (!cmt[text]) cmt[text]=[]; cmt[text].push(e); }, cmt=Object.create(null); 
    $('div.entry-comment').each(stat); $('span.comment-text').each(stat);
     for (var msg in cmt){ var arr=cmt[msg]; var len=arr.length; if (len>2) for (var i=0;i<len;++i) if (arr[i]) $(arr[i]).parent().parent().hide();}
    Ответить
  • var stat=function(i,e){ var text=$(e).text().toLowerCase().replace(/\s+/g, ''); if (!cmt[text]) cmt[text]=[]; cmt[text].push(e); }, cmt=Object.create(null); 
    $('div.entry-comment').each(stat); $('span.comment-text').each(stat);
     for (var msg in cmt){ var arr=cmt[msg]; var len=arr.length; if (len>2) for (var i=0;i<len;++i) if (arr[i]) $(arr[i]).parent().parent().hide();}
    Ответить

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

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

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


    8