Я хотел бы увеличить область касания вокруг UISwitch на 10 точек с каждой стороны. Глядя на несколько предложений в соответствующем сообщении (UIButton: сделать область попадания больше, чем область нажатия по умолчанию), я попытался увеличить рамку вокруг UISwitch, используя описанный ниже подход, однако это приводит к тому, что весь UISwitch растягивается, чтобы заполнить новую рамку.
Есть ли более разумный способ сделать это?
// Increase margin around switch based on width
const CGFloat desiredWidth = 260.0f; // real width is 240
const CGFloat margin = 0.5f * (desiredWidth - self.beginSwitch.frame.size.width);
// Add margin on all four sides of the switch
CGRect newFrame = self.beginSwitch.frame;
newFrame.origin.x -= margin;
newFrame.origin.y -= margin;
newFrame.size.width += 2.0f * margin;
newFrame.size.height += 2.0f * margin;
self.beginSwitch.frame = newFrame;