Погрешность округления с плавающей точкой. От , Что Каждый Программист Должен Знать Об Арифметике С плавающей точкой :
Сжатие бесконечно много вещественных чисел в конечное число битов требует приблизительного представления. Хотя существует бесконечно много целых чисел, в большинстве программ результат целочисленных вычислений может быть сохранен в 32 битах. Напротив, учитывая любое постоянное число битов, большинство вычислений с вещественными числами произведет количества, которые не могут быть точно представлены с помощью что много битов. Поэтому результат вычисления с плавающей точкой должен часто округляться для вписываний назад в его конечное представление. Эта погрешность округления является характерной функцией вычисления с плавающей точкой.
На самом деле это возможно без использования изображения для кнопок.
viewController.navigationController.navigationBar.tintColor =
[UIColor colorWithRed:0.16f green:0.36f blue:0.46 alpha:0.8];
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setBackgroundImage:[UIImage imageNamed:@"button_main.png"]
forState:UIControlStateNormal];
[button addTarget:self action:@selector(GotoSettings)
forControlEvents:UIControlEventTouchUpInside];
button.frame = CGRectMake(x, y, x1, x2);
UIBarButtonItem *menuButton = [[UIBarButtonItem alloc] initWithCustomView:menu];
self.navigationItem.rightBarButtonItem = menuButton;
[button release];
[menuButton release];