iOS 点击注释图标 弹出对应解释
需求:如题目 接上一篇的开发内容
效果图:
这种情况存在tableView 的一个cell中.
要点
1, 弹出的对应解释 要在可视区域,并且小尖角 要指着 图片
2, 文本不能过高 有极大高度 然后 文本内容可以滚动 (textView)
3, 对话框 宽度 固定为整体UI宽度
4,对话框朝向 由 当前点击的位置 以屏幕1/2为分界判断
5,因为 这个点击的View 是在cell里面 那么弹出的对话框展示 要相对于全屏 最上层 这个 触发 是整个app的第一响应所以
当前已知 焦点相对于cell View的位置 需要进一步知道相对于UIWindow的位置
关键代码:
CGRect rectInTableView = [tableView rectForRowAtIndexPath:self.indexPath];//知道当前cell indexPath 获得当前cell(即View)相对于tableView的位置
CGRect rectInSuperview = [tableView convertRect:rectInTableView toView:window];//获得当前cell(即View)相对于UIWindow的位置
6, 在同一个View里面有两个 两个以上 点击对话框的时候 点击时候 要取消上一次点击 (取消包括 删除/隐藏点击对话框的所有图层) 不然会页面混乱. 如果点击了空白 也要默认为取消点击 因为用户可能要开启别的点击事件 所以 这个时机取消 弹出对话框 为 第一响应
图文混排 讲到这里 也就是告于段落一阵子,具体问题当然还要具体分析,比如 如果 当前的富文本 需要有复制粘帖的功能呢??? 这个该怎么处理
慢慢来,面包牛奶都会有 ,具体问题具体分析吧 到这里了 ending
iOS 点击注释图标 弹出对应解释的更多相关文章
- iOS 点击TextField不弹出软键盘的解决方案
开发中遇到: 在模拟器里面,textfield可以通过电脑键盘输入,可是怎么也不会自动弹出模拟器软键盘 解决方案: 切换一下键盘,command+shift+k,Xcode6.3 中只能是一种输入源
- (Vue)移动端点击输入框,弹出键盘,底部被顶起问题
(Vue)移动端点击输入框,弹出键盘,底部被顶起问题:https://www.jianshu.com/p/210fbc846544 问题描述:Vue开发中,当我们相对于父视图的底部布局子控件时,需要用 ...
- vue封装公用弹出框方法,实现点击出现操作弹出框
vue封装公用弹出框方法,实现点击出现操作弹出框 如上图所示,这次要实现一个点击出现操作弹框的效果:并将这个功能封装成一个函数,便于在项目的多个地方使用. 具体思路是: 封装一个组件,组件保护一个插槽 ...
- Jquery 点击图片在弹出层显示大图
http://blog.csdn.net/wongwaidah/article/details/28432427(案例链接出处,本人只是转载收藏) <html> <head> ...
- js实现点击<li>标签弹出其索引值
据说这是一道笔试题,以下是代码,没什么要文字叙述的,就是点击哪个<li>弹出哪个<li>的索引值即可: <html> <head> <style& ...
- 手机调用系统的拍照和裁剪功能,假设界面有输入框EditText,在一些手机会出现点击EditText会弹出输入法,却不能输入的情况。
1. 拍照裁剪后 点击EditText会弹出输入法,却不能输入.可是点击点一EdtiText就能够输入了,所以我就写了一个看不见的EdtiText,切换焦点,这样就攻克了这个奇怪的这问题,应该是and ...
- 原生js日期时间插件鼠标点击文本框弹出日期时间表格选择日期时间
原文出处 (这是我从互联网上搜来的,感觉能满足各方面的需求.个人感觉挺不错的,所以后期修改了一下向大家推荐!) 效果图: html代码: <!DOCTYPE html PUBLIC " ...
- 第一个微信小程序(实现点击一个按钮弹出toast)
今天根据网上的教程搭建了微信小程序的环境,然后看文档做了一个简单的小应用. 项目的目录是这个样子的: app.js.app.json.app.wxss是全局文件,必不可少的文件.定义在app.wxss ...
- 解决IOS safari在input focus弹出输入法时不支持position fixed的问题
该文章为转载 我们在做移动web应用的时候,常常习惯于使用position:fixed把一个input框作为提问或者搜索框固定在页面底部.但在IOS的safari和webview中,对position ...
随机推荐
- library not found for -lPods-AFNetworking解决放案
出现library not found for -lPods-AFNetworking这个报错, 来自于我从git上面把我项目直接Download下来的,我的项目里面用了CocoaPods的,如今pr ...
- 【转】SQL SERVER 2005 数据库状态为“可疑”的解决方法
--MyDB为修复的数据名 USE MASTER GO SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE GO ALTER DATABA ...
- JavaScript-4.5 事件大全,事件监听---ShinePans
绑定事件 <input type="bubtton" onclick="javascript:alert('I am clicked');"> 处理 ...
- Import语句
在Java中,如果给出一个完整的限定名,包括包名.类名,那么Java编译器就可以很容易地定位到源代码或者类.Import语句就是用来提供一个合理的路径,使得编译器可以找到某个类. 例如,下面的命令行将 ...
- Spring MVC生成XML
以下示例演示如何使用Spring Web MVC框架生成XML.首先使用Eclipse IDE,并按照以下步骤使用Spring Web Framework开发基于动态表单的Web应用程序: 创建一个名 ...
- references non-existing project XXX, launch configuration问题的解决办法
Go to Project->properties In properties window's left pane select "Run/Debug Settings". ...
- Branching / Tagging
Branching / Tagging One of the features of version control systems is the ability to isolate changes ...
- ios -完全实现代码设置 Could not find a storyboard named 'Main' in bundle NSBundle
UIWindow *windows = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds]; windows.background ...
- Linux虚拟机安装完centos后环境配置
linux下面安装软件 yum install rpm -ivh 编译安装 三部曲:./configure make make install 卸载 rpm -e 安装方法 1)通过yum安装软件 需 ...
- Android开发:《Gradle Recipes for Android》阅读笔记1.7——仓库配置
repositories块告诉gradle哪里去寻找依赖,默认的android studio使用jcenter或者mavenCentral.jcenter仓库位于https://jcenter.bin ...