关于可移动Button的定制

在开发的过程中,有时候需要用到可以移动的Button,这就需要自己去写一个了;

设计思路:通过重写几个touch方法


- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
    if (!isMove && !isCancelTouch) {
        [delegate clickedActionOfScreenButton];
    }
}

当没有移动及没有取消的时候视为单击,当然依据需要还可以 判断触摸开始到结束的时间进行限制;

for(UITouch *touch in event.allTouches){
      float time = touch.timestamp;
}




转载于:https://www.cnblogs.com/skyry/archive/2012/12/10/5114637.html

在C#中,如果你想要实现Button控件右键可以调整其位置,而左键拖动到另一个Button绑定特定事件,通常是在设计用户界面时需要自定义拖放功能。这涉及到Windows Forms应用程序的一些高级特性,如DragDrop事件和UserControl的位置调整。 首先,你需要在每个Button上启用右键点击并拖动的功能,通过设置`AllowDrop`属性为`true`: ```csharp button1.AllowDrop = true; ``` 然后,你可以处理`DragEnter`和`DragLeave`事件,当鼠标移到或离开Button时触发: ```csharp private void button1_DragEnter(object sender, DragEventArgs e) { if (e.Data.GetDataPresent(DataFormats.Text)) e.Effect = DragDropEffects.Move; else e.Effect = DragDropEffects.None; } private void button1_DragLeave(object sender, EventArgs e) { // 拖离时的操作 } private void button1_DragDrop(object sender, DragEventArgs e) { Button dropTarget = FindDropTarget(e); if (dropTarget != null) { // 将当前Button移动到dropTarget位置,并处理其他关联操作 // 这里假设dropTarget有一个MoveToPosition方法接收新的位置 dropTarget.MoveToPosition(e.X, e.Y); // 可能需要取消原按钮的某些操作或添加新的事件绑定 } } ``` 对于左键拖动Button,通常会将两个Button放在同一个容器(例如Panel或Form)下,然后在容器上监听`DragDrop`事件,判断源Button和目标Button是否合法,并执行相应的事件绑定。 为了简化这个过程,你还可以创建自定义的UserControl,并重写它的`MouseDown`, `MouseMove`, 和 `MouseUp` 等事件来跟踪拖动行为。不过,这已经超出基本的Button操作范围,更适用于复杂的UI定制场景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值