• 2015-09-24

    iOS 滚动选择器控件 iOSScrollPicker

    Views: 23509 | No Comments

    滚动选择器控件, 不同于系统(框架)自带的 UISlider, iOSScrollPicker 支持:

    • 甩动选择
    • 点击选择
    • 支持竖直(上下)滚动
    • 支持水平(左右)滚动

    这有点像 iPhone 系统里的时间设置控件(日历控件), 或者说老虎机效果. 一般的实现是用 UIScrollView 来实现, 但用 UITableView 来实现, 可以更简洁, 减少很多偏移量的数值计算.

    代码下载: https://github.com/ideawu/iOSScrollPicker

    截图:

    iOS 滚动选择器控件 iOSScrollPicker

    Posted by ideawu at 2015-09-24 17:49:24 Tags: , ,
  • 2015-08-21

    CSS 样式规则的匹配算法实现

    Views: 29095 | No Comments

    CSS 的完整英文名称是: Cascading Style Sheets, 级联样式表. 除了可以定义丰富的样式, 以及进行界面控件布局外, CSS 最重要的特性便是名字中的"级联(Cascading)"一词. 级联代表了父子关联, 天生便是和数据结构中的"树"相关的.

    我创建的 CocoaUI iOS UI 框架, 是一个使用 CSS 进行 iOS 上流式布局的开发框架, 极大地方便了 iOS 应用的界面开发, 轻松适配多种屏幕. 因为 CocoaUI 使用 CSS 来进行界面布局和定义界面样式, 所以需要对 CSS 的样式规则进行匹配, 将某一条 CSS 样式作用到某一个 UIView(IView) 上面.

    Continue reading »

    Posted by ideawu at 2015-08-21 15:49:14 Tags: , , ,
  • 2015-08-05

    CocoaUI Viewer 开源了

    Views: 20271 | No Comments

    CocoaUI Viewer 是一个界面调试器, 专门用来调试 CocoaUI 的 XML 界面, 使用这个工具, 你可以进行所谓的所见即所得式的 UI 开发. 现在开源之后, 你可以在不同的模拟器里运行这个调试器, 以便调试界面在 iPhone 4/5/6/6p 上面的适配.

    关于使用 CocoaUI 框架进行 iOS app 开发的流程, 我推荐是这样:

    1. 在自己的 Mac 上搭建一个 nginx web 服务器, 以便能通过 HTTP 访问到 XML 界面文件.
    2. 在模块器里启动 CocoaUI Viewer, 填入要调试的 XML 文件的 URL.
    3. 调试完毕后, 把 XML 文件添加进你的 Xcode 项目.
    4. 然后就可以在代码里通过 [View namedView@"a.xml"] 来显示界面了.

    CocoaUI Viewer 的项目在 CocoaUI 项目里.

    下载地址: https://github.com/ideawu/cocoaui
    官方网站: http://www.cocoaui.com/

    Posted by ideawu at 2015-08-05 16:31:09 Tags: ,
  • 2015-08-01

    iOS 应用修改状态栏和导航栏颜色

    Views: 17496 | No Comments

    修改状态栏

    在 Target::Info 栏里, 找到 Custom iOS Target Properties, 加入一项配置项:

    Key: View controller-based status bar appearance
    Type: Boolean
    Value: NO
    

    这样, 就可以修改状态栏的字体颜色了, 否则没法改. 然后修改 AppDelegate:

    - (BOOL)application:(UIApplication *)app didFinishLaunchingWithOptions:(NSDictionary *)opts {
        [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
    }
    

    修改导航栏背景和字体颜色

    - (BOOL)application:(UIApplication *)app didFinishLaunchingWithOptions:(NSDictionary *)opts {
        self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
        
        UINavigationController *nav = [[UINavigationController alloc] init];
        nav.navigationBar.tintColor = [UIColor whiteColor];
        nav.navigationBar.titleTextAttributes = @{NSForegroundColorAttributeName: [UIColor whiteColor]};
        nav.navigationBar.barTintColor = [UIColor blueColor];
        nav.navigationBar.translucent = NO;
    
        self.window.rootViewController = nav;
        [self.window makeKeyAndVisible];
    
        return YES;
    }
    
    • tintColor: 导航栏的按钮(如返回)颜色
    • titleTextAttributes: 标题颜色
    • barTintColor: 背景颜色
    • translucent: 是否透明
    Posted by ideawu at 2015-08-01 15:50:17 Tags:
  • 2015-07-14

    iOS与PHP加密解密

    Views: 16711 | No Comments

    之前说过, iOS 的加密解密方法非常不方便, 不易于和 PHP 或者 Java 之间交互, 比较封闭.

    为了和PHP服务器端方便地进行加密解密操作, 我封装了 RSA 类. 使用这个类, 你可以用你喜欢的工具, 如 openssl 命令行, PHP 脚本, 生成友好的公钥或者私租文本, 然后 iOS 使用这些密钥进行加密, PHP 进行解密, 或者 PHP 进行解密, 由 iOS 进行解密.

    方法如下:

    // return base64 encoded string
    + (NSString *)encryptString:(NSString *)str publicKey:(NSString *)pubKey;
    // return raw data
    + (NSData *)encryptData:(NSData *)data publicKey:(NSString *)pubKey;
    // TODO:
    //+ (NSString *)encryptString:(NSString *)str privateKey:(NSString *)privKey;
    //+ (NSData *)encryptData:(NSData *)data privateKey:(NSString *)privKey;
    
    // decrypt base64 encoded string, convert result to string(not base64 encoded)
    + (NSString *)decryptString:(NSString *)str publicKey:(NSString *)pubKey;
    + (NSData *)decryptData:(NSData *)data publicKey:(NSString *)pubKey;
    // TODO:
    //+ (NSString *)decryptString:(NSString *)str privateKey:(NSString *)privKey;
    //+ (NSData *)decryptData:(NSData *)data privateKey:(NSString *)privKey;
    

    目前能实现:

    1. iOS 用公钥加密, PHP 用私钥解密
    2. PHP 用私钥加密, iOS 用公钥解密
    3. iOS 用私钥加密, PHP 用公钥解密(未实现)
    4. PHP 用公钥加密, iOS 用私钥解密(未实现)

    后面两种场景的需求还未实现, 但很快会实现. 欢迎你来补充. 项目地址: https://github.com/ideawu/Objective-C-RSA

    Posted by ideawu at 2015-07-14 16:59:51 Tags:
  • 2015-03-30

    SSDB 支持 iOS 设备使用了

    Views: 85272 | 4 Comments

    我很高兴地告诉大家, SSDB 支持在 iOS 设备上使用了! 当然, 这不是要在 iOS 设备上运行一个 ssdb server, 而是将 SSDB 库嵌入到你的 App 里.

    例如, 你在开发一个 iOS 邮件客户端, 你可以使用 SSDB 来存储邮件列表, 利用 SSDB 支持亿级别数据列表的功能特性, 轻松管理大量邮件. 例如, 你在开发一个阅读器, 你可以把成千上万的文章存储到 SSDB 中. 例如, 你在开发一个 iOS IM 应用, 你可以把消息历史用 SSDB 来存储管理.

    使用方法:

    1. 编译 SSDB 静态链接库

    make ios
    # ls ios/
    include/ libleveldb-ios.a libsnappy-ios.a libssdb-ios.a libutil-ios.a
    

    2. 将静态链接库和头文件引入你的 Xcode 项目.

    源码下载: https://github.com/ideawu/ssdb/tree/dev

    Posted by ideawu at 2015-03-30 17:16:00 Tags:
|<<<12>>>| 1/2 Pages, 9 Results.