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 ...
随机推荐
- codeblocks中右键源文件没有Rename选项?
那是因为你右击的那个文件已经被CB的编辑器打开,关闭即可,你就能看到Rename选项了. 或者更简单,翻到Files那一栏,然后右击某个文件夹选择"Make root"即可,就跟w ...
- StoryBoard不使用AutoLayout情况下 按比例快速兼容适配iPhone6/6 Plus教程【转载】
StoryBoard不使用AutoLayout情况下 按比例快速兼容适配iPhone6/6 Plus教程[转] 声明:本文章是为了后期快速兼容6和6Plus的按比例放大方法,对于部分读者来说可能觉得该 ...
- PHP使用CURL获取302跳转后的地址实例
/*返回一个302地址*/ function curl_post_302($url, $vars) { $ch = curl_init(); curl_setopt($ch ...
- datagrid返回记录为0时显示“没有记录”
datagrid返回记录为0时显示“没有记录”,此问题的 <script>var myview = $.extend({},$.fn.datagrid.defaults.view,{ on ...
- Spring MVC多项单选按钮
以下示例显示如何在使用Spring Web MVC框架的表单中使用多选按钮(RadioButton).首先使用Eclipse IDE来创建一个WEB工程,实现一个让用户可选择自己喜欢的数字的功能.并按 ...
- Eclipse 菜单
Eclipse 菜单 Eclipse 查看的菜单栏通常包含以下几个菜单: File 菜单 Edit 菜单 Navigate 菜单 Search 菜单 Project 菜单 Run 菜单 Window ...
- centos7 virtualbox使用internal network 内网模式
1)打开对应虚拟机的Settings,点开Network, 2)Adapter1如果已经选了挂到Bridged Adapter,则点开Adapter2, 3)选择挂到 Internal Network ...
- Python简单的线程池
class ThreadPool(object): def __init__(self, max_num=20): # 创建一个队列,队列里最多只能有10个数据 self.queue = queue. ...
- go http的三种实现---2
package main import ( "io" "log" "net/http" "os" ) func main ...
- hdu 5471(状压DP or 容斥)
想了最复杂的思路,用了最纠结的方法,花了最长的时间,蒙了一种规律然后莫名其妙的过了. MD 我也太淼了. 后面想了下用状压好像还是挺好写的,而且复杂度也不高.推出的这个容斥的规律也没完全想透我就CAO ...