UISwitch:使触摸区域大于默认触摸区域

时间:2013-02-01 21:35:21

标签: ios ipad uiswitch

我想让UISwitch周围的触控区域每侧增加10点。看一下相关文章(UIButton: Making the hit area larger than the default hit area)中的一些建议,我尝试使用以下方法增加UISwitch周围的框架,但是它会导致整个UISwitch拉伸以填充新框架。

slide to begin arrow with padding

有没有更合理的方法可以做到这一点?

// 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;

1 个答案:

答案 0 :(得分:0)

我已经通过在图像前放置一个隐形按钮(尺寸较大)(或者在您的情况下为开关)来完成这些功能。这样做可以设置开关的状态,并根据开关当前状态的反转来设置。还可以在隐藏按钮的“操作代码”中执行实际操作。