Поскольку обводка расширяется равными величинами в обе стороны, строка шириной в один пиксель не должна быть размещена на целочисленной координате, но со смещением 0,5 пикселя.
Рассчитать правильные координаты для штриховых линий следующим образом:
CGPoint pos = CGPointMake(floorf(pos.x) + 0.5f, floorf(pos.y) + 0.5f);
Кстати: не приводите ваши значения к int и обратно к float, чтобы избавиться от десятичной части. Для этого в Си есть функция под названием floor
.