UI

如何让程序员更容易的开发Web界面?重构SmartAdmin展示TinyUI框架

微笑、不失礼 提交于 2019-12-09 12:04:11
序言 如何让程序员更容易的开发Web界面,是一个持久的话题,所有的从事相关开发的公司都会碰到这个问题,并且被这个问题所深深困扰。 Tiny框架也不得不直视这个问题,确实来说,想解决这个问题,也是非常有难度与深度的,业界也有各种各样的尝试,这也是有各种各样不同框架出现的原因。 Tiny框架构建者认为, 完全采用一种框架解决所有问题,是不现实的。而且即使目前找得到一种非常好的框架,暂时可以满足应用需要,但是随着技术的发展,业务的进化,就会慢慢变得不再满足业务需要。因此,Tiny框架构建从不再把做一套UI组件去适各种需求作为自己的目标。 反过来,我们看看在做Web应用中,可能会碰到的问题: UI中JS的引入与顺序,JS合并的问题 UI中css的引入与顺序,CSS合并的问题 UI中碰到性能问题时的影响范围,比如:一个树出现问题,要改动许多用到树的地方 代码重复的问题,同样的内容在许多地方都有,如果要改动就要改动许多个地方 整体布局调整困难的问题 程序员需要关注的内容太多的问题,JS,CSS,布局,后台业务,前台展现,尼玛界面工程师必须得是全才才可以搞得定所有问题。 开发效率的问题 执行效率的问题,前台响应要求速度更快 集群的问题 国际化的问题 ... 因此,我在以前写过一篇文章: UI开发的终极解决方案 感兴趣的同学,可以去看看,今天的目标是利用TinyUI框架的重构SmartAdmin

设置对话框的背景颜色及设置透明

只谈情不闲聊 提交于 2019-12-09 09:45:48
现说设置背景颜色。 我用了很多方法都不行,查了很多资料,现在说一下解决方案吧。 在XXXXXXDlg.头文件的protected:中加入CBrush m_brush; 在XXXXXXDlg.cpp文件中的OnInitDialog()初始化函数中加入画刷m_brush.CreateSolidBrush(RGB(255,255,255));RGB中的颜色自己定义。 然后在类向导中添加WM_CTLCOLOR消息函数。在里面只写一句话:return m_brush; 背景颜色就改了。 现在说怎么设计透明了,那就更简单了。 在OnInitDialog()初始化函数中添加两行代码: SetWindowLong(GetSafeHwnd(),GWL_EXSTYLE,GetWindowLong(GetSafeHwnd(),GWL_EXSTYLE)|WS_EX_LAYERED); SetLayeredWindowAttributes(0,200,LWA_ALPHA); 第二行中的200为透明度,0为全透明,255为不透明。 来源: oschina 链接: https://my.oschina.net/u/555701/blog/56617

Cocoa 用户界面组件使用指导(教程翻译)

蓝咒 提交于 2019-12-07 12:55:11
Cocoa 用户界面组件使用指导(教程翻译) === 原文地址: 本地: ~/ccl-1.8-darwinx86/examples/cocoa/ui-elements/HOWTO.html 网络: http://trac.clozure.com/ccl/browser/trunk/source/examples/cocoa/ui-elements/HOWTO.html 原文标题: UI Elements HOWTO 翻译者: FreeBlues 2013-07-18 === 目录 0 概述 1 创建一个窗口 2 增加一个按钮 3 增加按钮相关的事件处理函数 0 概述 这篇 HOWTO 文档示范了如何通过 Lisp 调用来实例化和初始化 Objective-C 对象,进而创建 Cocoa 用户界面组件。 Cocoa 程序员通常使用苹果的 InterfaceBuilder 应用程序来创建的 UI 组件,然后从一个 nibfile 文件中加载这些组件,但是 Cocoa 支持在 Objective-C 方法调用中创建所有的相同的 UI 组件。事实上,调用 nibfiles 就是这是怎么一回事:通过方法调用来实例化那些在 nibflie 中描述的对象。 Lisp 程序员习惯于在工作中采取增量和交互的方式,所以通过方法调用来交互式创建用户界面组件,比起在 InterfaceBuilder

NGUI创建Camera参数为Simple 2D的UI UI对象的结构UI Root(2D)

天大地大妈咪最大 提交于 2019-12-07 10:23:44
NGUI创建Camera参数为Simple 2D的UI UI对象的结构UI Root(2D) 使用 NGUI 创建的 Camera 参数为 Simple 2D 的 UI ,会在游戏的场景中生成 1 个名为 UI Root(2D) 的游戏对象,且此对象下还包含了 3 个其它对象: Camera 、 Anchor 和 Panel ,如图 1-4 所示。本小节会分别介绍这 4 个游戏对象 本文选自 NGUI从入门到实战 。 图 1-4 在 Hierarchy 视图里查看新创建的 UI 游戏对象 1.4.1 UI Root(2D) 此游戏对象将负责控制 UI 控件的大小。在 Hierarchy 视图里选中 UI Root(2D) 对象,然后在 Inspector 视图里查看此游戏对象上的组件,如图 1-5 所示。 图 1-5 在 Inspector 视图里查看 UI Root(2D) 对象的各组件 Transform 组件在 Unity 的游戏对象上很常见,或者说所有的游戏对象上都有此组件,很平常就不做介绍了。而 UIRoot(Script) 组件是此游戏对象所特有的,其属性和介绍如下 本文选自 NGUI从入门到实战 : q Scaling Style :可以用于修改 UI 控件的缩放样式。 提示:此属性下有 3 个可选的参数: PixelPerfect 、 FixedSize 和

简短总结一下C#里跨线程更新UI

前提是你 提交于 2019-12-07 01:27:06
跨线程更新UI是写多线程程序尤其是通信类的程序经常遇到的问题,这里面主要的问题是冲突,比如数据线程想要更新UI的时候,用户同时也在更新UI,就会出现争用。C#里可以用 Control . CheckForIllegalCrossThreadCalls = false ; 来关闭跨线程检测。但是这样做有一定的风险,容易让程序崩溃。 最好的办法是通过Invoke,这篇博客只是提供一个示例,至于那些线程同步、Invoke和BeginInvoke,Invoke底层实现神马的,有空再说吧。 一个简单的例子如下:(注,Form1 加入了一个名为txt的TextBox) using System ; using System . Collections . Generic ; using System . ComponentModel ; using System . Data ; using System . Drawing ; using System . Linq ; using System . Text ; using System . Windows . Forms ; using System . Threading ; namespace testThread { public partial class Form1 : Form { private delegate void

Android 类Pinterest 瀑布流实现方式 分享

风格不统一 提交于 2019-12-06 18:47:41
oschina 中收录了类Pinterst 瀑布流的一个实现方式 http://www.oschina.net/p/android_waterfall 实现方式是ScrollView 嵌套多列LinearLayout ,通过计算当前图片与上下两屏距离来判断是否被回收或者重载。 单个瀑布流也可以从布局文件中 Infalte 出来,实现自定义。 Github 上还有另外一种 瀑布流的实现方式 https://github.com/huewu/PinterestLikeAdapterView Git clone git://github.com/huewu/PinterestLikeAdapterView.git 韩文。韩国人写的。 写的有点特别 。 我估计: 他首先将google的 android.widget 包中的 AdapterView ,AdapterListView和 ListView 源码copy下来。 对其中的某些部分进行了修改.(代码太多 还没有看完) ,最后使用 MultiColumnListView 类实现了 多列的ListView。 如果预计没错 ,单个View的显示方式和回收方式是和ListView相同的,有个pool of recycled views 。Adapter 中调用 getView(int posititon ,View converView ..

[备忘]jQuery UI Datepicker的时间选择插件

◇◆丶佛笑我妖孽 提交于 2019-12-06 16:51:35
太遗憾了,jQuery UI官方的日期控件Datepicker中居然没有提供时间(时分秒)的选择,还好网上有人写了针对jQuery UI Datepciker的插件——jQuery Timepicker Addon,它依赖于jQuery UI中的datepicker和slider组件! 它的使用非常简单,官网有非常详细的demo示例! 官网地址: http://trentrichardson.com/examples/timepicker/ 我在项目中使用它的效果图如下: 来源: oschina 链接: https://my.oschina.net/u/115036/blog/37974

解决 jQuery UI Datepicker 无法弹出日期的问题

早过忘川 提交于 2019-12-06 16:51:20
今天遇到一个意想不到的bug,在使用jQuery UI Datepicker 时无法弹出日期选择框。 经过和官方的演示案例对比,最终找到了问题所在。 我使用的错误方法: <input type="text" id="to" name="to_date" class="xxshort form-text hasDatepicker" /> 或者 正确的用法: <input type="text" id="to" name="to_date" class="xxshort form-text" /> 或者 hasDatepicker 是来自点击文本框后,jQuery UI Datepicker 弹出日期选择时生产的类。 所以这个类一定不能提前加到文本框中的class中。 查看jQuery UI Datepicker是否初始化装载到页面,只需通过调试工具查看body中是否装入了Datepicker的div层。 比如: <div id="datepicker_div"></div> 或者 <div class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all" id="ui-datepicker-div"></div></blockquote> 如果以上div内生成HTML

比较react和flex的设计哲学

拜拜、爱过 提交于 2019-12-06 13:53:20
前两天收到了《react引领未来的用户界面开发框架》,因为一直在从事flex的开发,自然比较,自然发现其中80%的雷同之处。深度怀疑react的开发者是曾经的flex开发者一员,或者是仿冒,但是做到了青出于蓝。 1、JSX的组件: 和flex新建mxml组件的方式一模一样,引用方式也一样,使用方式也一样。 唯一不用点是jsx多了一种创建html(xml)标记的方式。 flex自定义的组件引用: <ui:DateField id="dateFrom" text={'2015-02-16'} width="100"/> react的: <RepoList promise={$.getJSON('https://api.github.com/search/repositories?q=javascript&sort=stars')} /> JSX独创的方式: ReactDOM.render( <RepoList promise={$.getJSON('https://api.github.com/search/repositories?q=javascript&sort=stars')} />, document.body ); 2、状态机: react鼓吹的状态机特点,这一点flex早已有之,并且处理方式,和界面交互的操作方式更简洁: <mx:states> <s:State name

[笔记]jQuery UI的tabs组件在IE浏览器中的缓存问题~

南笙酒味 提交于 2019-12-06 11:45:19
jQuery中禁用缓存 最近在使用jQuery ui中的tabs插件时,遇到一个问题。 在非IE浏览器下,标签是自动刷新的。就是在不同的标签间切换,不用刷新整个页面,如果某个标签内容有更新,比如显示时间,那么切换到别的标签,再切换回来,时间是最自动更新的。 但是在IE中,无论怎么修改标签内的代码,内容都不会自动刷新,而且,按F5设置是Ctrl+F5,内容都不会自动更新! 后来,在国外论坛中找到了一种方法,就是禁用jQuery的缓存: $.ajaxSetup({cache:false}) 其实,cache:false我之前也有想到,但是把它放到tabs()里面了,所以竟然无效。 看来还是对jQuery框架了解的不是太深刻哈。 不过这也暴露了使用框架的一个弊端:不太自由。如果需要使用些高级的功能,就相当麻烦。 当然,如果只是在UI上,jQuery是非常棒的。但是如果处理数据,它就显得有点儿力不从心了。 貌似在数据处理上EXT比较强大些。 [摘自:http://shenfei.me/jquery-to-disable-caching.html] --------------------------------------------------------- 呵呵,我最近也碰到这个问题了,我用的是jQuery 1.4.4和jQuery UI 1.8.8,在IE6、7、8版本中都有这个问题