2

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

1 に答える 1

0

私は、画像 (またはあなたの場合はスイッチ) の前に目に見えないボタン (サイズが大きい) を配置することで、このような偉業を達成しました。これを行うと、スイッチの状態を設定し、スイッチの現在の状態の逆に基づいて設定できます。また、非表示ボタンのアクション コード内で実際のアクションを実行します。

于 2013-02-01T21:41:51.033 に答える