`
liubo0_0
  • 浏览: 21805 次
社区版块
存档分类
最新评论

拖动控件效果实现

 
阅读更多
@interface DragView : UIImageView
{
CGPoint startLocation;
}
@end

@implementation DragView
- (id) initWithImage: (UIImage *) anImage
{
if (self = [super initWithImage:anImage])
self.userInteractionEnabled = YES;
return self;
}

- (void) touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event
{
// Calculate and store offset, and pop view into front if needed
CGPoint pt = [[touches anyObject] locationInView:self];
startLocation = pt;
[[self superview] bringSubviewToFront:self];
}

- (void) touchesMoved:(NSSet*)touches withEvent:(UIEvent*)event
{
// Calculate offset
CGPoint pt = [[touches anyObject] locationInView:self];
float dx = pt.x - startLocation.x;
float dy = pt.y - startLocation.y;
CGPoint newcenter = CGPointMake(self.center.x + dx, self.center.y + dy);

// Bound movement into parent bounds
float halfx = CGRectGetMidX(self.bounds);
newcenter.x = MAX(halfx, newcenter.x);
newcenter.x = MIN(self.superview.bounds.size.width - halfx, newcenter.x);

float halfy = CGRectGetMidY(self.bounds);
newcenter.y = MAX(halfy, newcenter.y);
newcenter.y = MIN(self.superview.bounds.size.height - halfy, newcenter.y);

// Set new location
self.center = newcenter;
}
@end


分享到:
评论

相关推荐

    Winform ToolStrip控件左右拖拽移动效果实现

    ** 功能描述:ToolStrip控件左右拖拽移动效果实现 * 主窗体下部添加一个Panel乘放ToolStrip控件以实现ToolStrip在窗体下部定位。 * 当ToolStrip控件中子控件超出屏幕时,拖动控件可以实现滑动效果。拖动到控件...

    控件拖动 拖拽效果 拖拽控件

    拖动效果和拖拽控件的功能使得用户能够更直观、方便地与界面进行交互。以下将详细讲解如何在C#中实现这一功能。 首先,我们需要了解基本原理。在Windows Forms或WPF中,拖动控件的核心在于处理鼠标事件,尤其是`...

    c# 实现任意控件的拖拽

    下面将详细介绍如何在C#中实现任意控件的拖拽功能。 首先,我们需要为控件添加鼠标事件处理程序。在C#中,这些事件包括`MouseDown`、`MouseMove`和`MouseUp`。`MouseDown`事件在鼠标按钮被按下时触发,`MouseMove`...

    Android 拖拽控件交换位置

    在Android开发中,拖拽控件并实现它们的位置交换是一项常见的需求,特别是在设计交互式界面时。本篇文章将深入探讨如何在Android应用中实现在布局中拖拽控件并完成位置互换的功能。 首先,我们需要了解Android中的...

    android控件在界面上自由拖动位置显示

    在Android开发中,实现控件在界面上自由拖动位置显示是一种常见的需求,可以提供更加灵活和用户友好的交互体验。本主题主要涉及的是如何在Android应用中创建一个自定义的拖动控件,允许用户自由调整控件在屏幕上的...

    C#实现控件的拖动,三种方法实现,供参考

    这种方法可以实现更精细的拖动效果,如半透明拖影。 每种方法都有其适用场景,开发者应根据实际需求选择合适的方式。需要注意的是,无论哪种方法,都要确保在处理拖动事件时考虑用户体验,比如设置适当的拖动阈值,...

    鼠标动态拖拽控件大小

    在本文中,我们将深入探讨如何在Visual Studio 2008 MFC工程中实现鼠标动态拖拽控件大小的功能。MFC(Microsoft Foundation Classes)是微软提供的一套面向对象的C++类库,用于简化Windows应用程序开发。在这个特定...

    CListCtrl控件实现Item项拖拽效果

    总之,实现CListCtrl控件的Item项拖拽效果需要对MFC和Windows消息机制有深入的理解。这个功能不仅增强了用户体验,也展示了CListCtrl控件的强大功能。通过实践和调试,你可以掌握这一技巧,并将其应用到更复杂的MFC...

    Flex拖拽控件效果

    这个主题聚焦于“Flex拖拽控件效果”,这是一项常见的用户交互功能,允许用户通过鼠标操作移动UI元素,提升应用的易用性和互动性。 在Flex中,实现拖放(Drag and Drop)功能主要涉及两个核心类:`DragManager`和`...

    C# WinForm实现窗体上控件自由拖动功能示例

    在Form1_Paint事件中,我们判断了rect变量是否为空,如果不为空,则绘制一个矩形,用于显示控件的拖动效果。 四、示例代码分析 在示例代码中,我们使用了多种技术来实现控件的自由拖动功能,包括: 1. 使用...

    VC 实现鼠标拖动控件边框改变其大小

    在VC++编程环境中,开发Windows应用程序时,我们经常需要实现用户可以通过鼠标拖动控件的边框来改变其大小的功能。这个功能对于提高用户界面的交互性和灵活性至关重要。标题"VC 实现鼠标拖动控件边框改变其大小"正是...

    C# 控件拖拽效果

    "C# 控件拖拽效果"是指在C#环境中实现用户界面(UI)元素的动态拖放功能。这一功能允许用户通过鼠标操作将控件从一个位置移动到另一个位置,极大地提升了用户体验和交互性。下面我们将深入探讨如何在C#中实现控件的...

    C#实现鼠标拖动控件

    如果`isDragging`标志为真,那么计算鼠标当前位置与拖动开始位置的偏移量,并将这个偏移量应用到控件的位置上,以实现拖动效果。 ```csharp private void Control_MouseMove(object sender, MouseEventArgs e) { ...

    wpf控件拖动,控件换位置

    本篇将深入探讨如何实现控件的拖动以及控件之间位置的交换,同时也会涉及到在拖动过程中可能用到的动画效果。 首先,我们要创建一个可拖动的控件。在WPF中,我们可以为控件添加鼠标事件处理程序,如`MouseDown`、`...

    强大的js拖动控件

    "强大的js拖动控件"标题所提及的,可能是一个高效的JavaScript库或者插件,用于实现这种交互效果。在实际应用中,这种控件可以用于文件管理器、桌面应用模拟、图表元素调整等场景。 描述中的“博文链接:...

    Android随意拖动控件视图

    通过监听和响应触摸事件,我们可以实现手指拖动控件的效果,同时注意各种坐标系统的转换,以及在ACTION_MOVE事件中实时更新控件的位置。最后,别忘了对布局文件、项目配置以及可能的权限需求进行相应的设置。

    安卓Launcher桌面相关-使用ViewPager实现高仿launcher拖动效果.rar

    本教程将详细讲解如何利用ViewPager组件来实现一个类似原生Launcher的高仿拖动效果。 ViewPager是Android SDK中的一个强大视图,主要用于展示多个页面并允许用户左右滑动切换这些页面。在实现Launcher桌面的滑动...

    Android 分享控件的实现代码

    BottomSheetDialog 控件可以从屏幕底部弹出,并且可以实现上下拖动的效果。 分享控件的实现代码 分享控件的实现代码主要包括三个部分:分享控件的布局、分享控件的逻辑和分享控件的样式。在分享控件的实现代码中,...

    C# wpf 附加属性实现任意控件拖动调整大小

    使用附加属性将各种控件拖动改变大小功能整合到一起,提高复用性和移植性,界面和逻辑分离,支持自定义拖动样式。原文链接:https://blog.csdn.net/u013113678/article/details/121719278

    android 可拖动控件

    在Android开发中,实现可拖动控件是一项常见的需求,特别是在设计交互丰富的用户界面时。本文将深入探讨如何在Android中创建一个可拖动的控件,并基于提供的博客链接(http://www.cnblogs.com/yukino/p/4438415.html...

Global site tag (gtag.js) - Google Analytics