Как я могу центрировать изображение в UIBarButtonItem?

У меня есть изображение @2x с квадратом {50, 50}, как показано синим прямоугольником ниже. Теперь мне нужно сделать это изображение центром кнопки UIBarButtonItem, которая имеет больший прямоугольник (как красный прямоугольник ниже). Красные стрелки указывают на растяжимую область.

изображение

Я пробовал -imageWithAlignmentRectInsets: и -resizableImageWithCapInsets:, но он показывает неправильный рисунок.

Как я могу центрировать изображение на кнопке пользовательского элемента кнопки панели?


Обновлять:

Теперь у меня есть модифицированное изображение с 1 прозрачным пикселем вокруг исходного изображения (@1x). Но до сих пор понятия не имею, как достичь своей цели.

измененный значок

Значок был масштабирован по горизонтали и вертикали (как показано ниже), чтобы заполнить кнопку.

показать

Я хочу центрировать значок на кнопке, а не заполнять.

Я пробовал следующий метод, но бесполезен:

// (1) use content mode
button.imageView.contentMode = UIViewContentModeCenter;

// (2) alignment
resizedImage = [image imageWithAlignmentRectInsets:UIEdgeInsetsMake(1, 1, 1, 1)];

// (3) resize
resizedImage = [image resizableImageWithCapInsets:UIEdgeInsetsMake(1, 1, 1, 1)];

// After all, assign the image to the background image for the button
[button setBackgroundImage:resizedImage forState:UIControlStateNormal];

person Xaree Lee    schedule 18.03.2014    source источник
comment
любой скриншот вывода? Я добился этого, используя UIButton в файле xib.   -  person m-farhan    schedule 18.03.2014


Ответы (1)


Убедитесь, что размер изображения точно 20*20 пикселей. В документе на барную стойку написано:

Изображения, отображаемые на панели, получены из этого изображения. Если это изображение слишком велико, чтобы поместиться на панели, оно масштабируется, чтобы соответствовать. Как правило, размер изображения панели инструментов и панели навигации составляет 20 x 20 точек.

Надеюсь это поможет .. :)

person Rashad    schedule 18.03.2014