- 浏览: 227054 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (109)
- IOS (15)
- 设计模式 (7)
- XML (1)
- Android (31)
- 面试经 (1)
- J2EE (3)
- android md5 加密 (2)
- android imagebutton文字实现 (1)
- 反射机制 (2)
- 基础知识 (1)
- linux (3)
- java (4)
- java基础 (2)
- 文章 (1)
- myeclipse tomcat (1)
- Hadoop (1)
- ubuntu (2)
- redmine (1)
- python (4)
- jmeter (10)
- xamarin (1)
- selenium (9)
- nexus (1)
- appium (3)
- BDD (1)
- apache2 (1)
- zabbix (2)
- python,webdriver (1)
- ajax (1)
- jmeter,正则表达式,关联 (2)
- 性能测试工具 (1)
- Django (0)
- Intelij (1)
- RAP (0)
- 性能测试 (0)
最新评论
如何自定义分组表视图/边框颜色的背景您需要设置UITableViewCell的backgroundView属性自定义UIView,吸引了在适当的边界和背景颜色的本身。 这种观点必须能够吸纳4种不同的模式the边界,圆形至于有关第一次在一节细胞顶部,为在最后一节细胞bottom,因为在对一节middle cells no圆角圆角落,并四舍五入为第一个细胞都含有4个角落。
不幸的是我无法弄清楚如何使这种模式下自动设置,所以我不得不设在UITableViewDataSource的- cellForRowAtIndexPath它的方法。
这是一个真正的太平洋岛屿电信协会,但我已经与苹果公司的工程师证实,这是目前唯一的办法。
更新下面是自定义视图代码为保函。 有一个绘图错误,使圆角看起来有点滑稽,但我们转移到一个不同的设计和取消了自定义的背景前,我有机会来解决它。 不过这可能会很对你有帮助:
//
// CustomCellBackgroundView.h
//
// Created by Mike Akers on 11/21/08.
// Copyright 2008 __MyCompanyName__. All rights reserved.
//
#import <UIKit/UIKit.h>
typedef enum {
CustomCellBackgroundViewPositionTop,
CustomCellBackgroundViewPositionMiddle,
CustomCellBackgroundViewPositionBottom,
CustomCellBackgroundViewPositionSingle
} CustomCellBackgroundViewPosition;
@interface CustomCellBackgroundView : UIView {
UIColor *borderColor;
UIColor *fillColor;
CustomCellBackgroundViewPosition position;
}
@property(nonatomic, retain) UIColor *borderColor, *fillColor;
@property(nonatomic) CustomCellBackgroundViewPosition position;
@end
//
// CustomCellBackgroundView.m
//
// Created by Mike Akers on 11/21/08.
// Copyright 2008 __MyCompanyName__. All rights reserved.
//
#import "CustomCellBackgroundView.h"
static void addRoundedRectToPath(CGContextRef context, CGRect rect,
float ovalWidth,float ovalHeight);
@implementation CustomCellBackgroundView
@synthesize borderColor, fillColor, position;
- (BOOL) isOpaque {
return NO;
}
- (id)initWithFrame:(CGRect)frame {
if (self = [super initWithFrame:frame]) {
// Initialization code
}
return self;
}
- (void)drawRect:(CGRect)rect {
// Drawing code
CGContextRef c = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(c, [fillColor CGColor]);
CGContextSetStrokeColorWithColor(c, [borderColor CGColor]);
if (position == CustomCellBackgroundViewPositionTop) {
CGContextFillRect(c, CGRectMake(0.0f, rect.size.height - 10.0f, rect.size.width, 10.0f));
CGContextBeginPath(c);
CGContextMoveToPoint(c, 0.0f, rect.size.height - 10.0f);
CGContextAddLineToPoint(c, 0.0f, rect.size.height);
CGContextAddLineToPoint(c, rect.size.width, rect.size.height);
CGContextAddLineToPoint(c, rect.size.width, rect.size.height - 10.0f);
CGContextStrokePath(c);
CGContextClipToRect(c, CGRectMake(0.0f, 0.0f, rect.size.width, rect.size.height - 10.0f));
} else if (position == CustomCellBackgroundViewPositionBottom) {
CGContextFillRect(c, CGRectMake(0.0f, 0.0f, rect.size.width, 10.0f));
CGContextBeginPath(c);
CGContextMoveToPoint(c, 0.0f, 10.0f);
CGContextAddLineToPoint(c, 0.0f, 0.0f);
CGContextStrokePath(c);
CGContextBeginPath(c);
CGContextMoveToPoint(c, rect.size.width, 0.0f);
CGContextAddLineToPoint(c, rect.size.width, 10.0f);
CGContextStrokePath(c);
CGContextClipToRect(c, CGRectMake(0.0f, 10.0f, rect.size.width, rect.size.height));
} else if (position == CustomCellBackgroundViewPositionMiddle) {
CGContextFillRect(c, rect);
CGContextBeginPath(c);
CGContextMoveToPoint(c, 0.0f, 0.0f);
CGContextAddLineToPoint(c, 0.0f, rect.size.height);
CGContextAddLineToPoint(c, rect.size.width, rect.size.height);
CGContextAddLineToPoint(c, rect.size.width, 0.0f);
CGContextStrokePath(c);
return; // no need to bother drawing rounded corners, so we return
}
// At this point the clip rect is set to only draw the appropriate
// corners, so we fill and stroke a rounded rect taking the entire rect
CGContextBeginPath(c);
addRoundedRectToPath(c, rect, 10.0f, 10.0f);
CGContextFillPath(c);
CGContextSetLineWidth(c, 1);
CGContextBeginPath(c);
addRoundedRectToPath(c, rect, 10.0f, 10.0f);
CGContextStrokePath(c);
}
- (void)dealloc {
[borderColor release];
[fillColor release];
[super dealloc];
}
@end
static void addRoundedRectToPath(CGContextRef context, CGRect rect,
float ovalWidth,float ovalHeight)
{
float fw, fh;
if (ovalWidth == 0 || ovalHeight == 0) {// 1
CGContextAddRect(context, rect);
return;
}
CGContextSaveGState(context);// 2
CGContextTranslateCTM (context, CGRectGetMinX(rect),// 3
CGRectGetMinY(rect));
CGContextScaleCTM (context, ovalWidth, ovalHeight);// 4
fw = CGRectGetWidth (rect) / ovalWidth;// 5
fh = CGRectGetHeight (rect) / ovalHeight;// 6
CGContextMoveToPoint(context, fw, fh/2); // 7
CGContextAddArcToPoint(context, fw, fh, fw/2, fh, 1);// 8
CGContextAddArcToPoint(context, 0, fh, 0, fh/2, 1);// 9
CGContextAddArcToPoint(context, 0, 0, fw/2, 0, 1);// 10
CGContextAddArcToPoint(context, fw, 0, fw, fh/2, 1); // 11
CGContextClosePath(context);// 12
CGContextRestoreGState(context);// 13
}
首先感谢所有为这个代码。 我已经在这个函数绘图改变,以消除一些角落绘制问题。
-(void)drawRect:(CGRect)rect
{
// Drawing code
CGContextRef c = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(c, [fillColor CGColor]);
CGContextSetStrokeColorWithColor(c, [borderColor CGColor]);
CGContextSetLineWidth(c, 2);
if (position == CustomCellBackgroundViewPositionTop) {
CGFloat minx = CGRectGetMinX(rect) , midx = CGRectGetMidX(rect), maxx = CGRectGetMaxX(rect) ;
CGFloat miny = CGRectGetMinY(rect) , maxy = CGRectGetMaxY(rect) ;
minx = minx + 1;
miny = miny + 1;
maxx = maxx - 1;
maxy = maxy ;
CGContextMoveToPoint(c, minx, maxy);
CGContextAddArcToPoint(c, minx, miny, midx, miny, ROUND_SIZE);
CGContextAddArcToPoint(c, maxx, miny, maxx, maxy, ROUND_SIZE);
CGContextAddLineToPoint(c, maxx, maxy);
// Close the path
CGContextClosePath(c);
// Fill & stroke the path
CGContextDrawPath(c, kCGPathFillStroke);
return;
} else if (position == CustomCellBackgroundViewPositionBottom) {
CGFloat minx = CGRectGetMinX(rect) , midx = CGRectGetMidX(rect), maxx = CGRectGetMaxX(rect) ;
CGFloat miny = CGRectGetMinY(rect) , maxy = CGRectGetMaxY(rect) ;
minx = minx + 1;
miny = miny ;
maxx = maxx - 1;
maxy = maxy - 1;
CGContextMoveToPoint(c, minx, miny);
CGContextAddArcToPoint(c, minx, maxy, midx, maxy, ROUND_SIZE);
CGContextAddArcToPoint(c, maxx, maxy, maxx, miny, ROUND_SIZE);
CGContextAddLineToPoint(c, maxx, miny);
// Close the path
CGContextClosePath(c);
// Fill & stroke the path
CGContextDrawPath(c, kCGPathFillStroke);
return;
} else if (position == CustomCellBackgroundViewPositionMiddle) {
CGFloat minx = CGRectGetMinX(rect) , maxx = CGRectGetMaxX(rect) ;
CGFloat miny = CGRectGetMinY(rect) , maxy = CGRectGetMaxY(rect) ;
minx = minx + 1;
miny = miny ;
maxx = maxx - 1;
maxy = maxy ;
CGContextMoveToPoint(c, minx, miny);
CGContextAddLineToPoint(c, maxx, miny);
CGContextAddLineToPoint(c, maxx, maxy);
CGContextAddLineToPoint(c, minx, maxy);
CGContextClosePath(c);
// Fill & stroke the path
CGContextDrawPath(c, kCGPathFillStroke);
return;
}
}
不幸的是我无法弄清楚如何使这种模式下自动设置,所以我不得不设在UITableViewDataSource的- cellForRowAtIndexPath它的方法。
这是一个真正的太平洋岛屿电信协会,但我已经与苹果公司的工程师证实,这是目前唯一的办法。
更新下面是自定义视图代码为保函。 有一个绘图错误,使圆角看起来有点滑稽,但我们转移到一个不同的设计和取消了自定义的背景前,我有机会来解决它。 不过这可能会很对你有帮助:
//
// CustomCellBackgroundView.h
//
// Created by Mike Akers on 11/21/08.
// Copyright 2008 __MyCompanyName__. All rights reserved.
//
#import <UIKit/UIKit.h>
typedef enum {
CustomCellBackgroundViewPositionTop,
CustomCellBackgroundViewPositionMiddle,
CustomCellBackgroundViewPositionBottom,
CustomCellBackgroundViewPositionSingle
} CustomCellBackgroundViewPosition;
@interface CustomCellBackgroundView : UIView {
UIColor *borderColor;
UIColor *fillColor;
CustomCellBackgroundViewPosition position;
}
@property(nonatomic, retain) UIColor *borderColor, *fillColor;
@property(nonatomic) CustomCellBackgroundViewPosition position;
@end
//
// CustomCellBackgroundView.m
//
// Created by Mike Akers on 11/21/08.
// Copyright 2008 __MyCompanyName__. All rights reserved.
//
#import "CustomCellBackgroundView.h"
static void addRoundedRectToPath(CGContextRef context, CGRect rect,
float ovalWidth,float ovalHeight);
@implementation CustomCellBackgroundView
@synthesize borderColor, fillColor, position;
- (BOOL) isOpaque {
return NO;
}
- (id)initWithFrame:(CGRect)frame {
if (self = [super initWithFrame:frame]) {
// Initialization code
}
return self;
}
- (void)drawRect:(CGRect)rect {
// Drawing code
CGContextRef c = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(c, [fillColor CGColor]);
CGContextSetStrokeColorWithColor(c, [borderColor CGColor]);
if (position == CustomCellBackgroundViewPositionTop) {
CGContextFillRect(c, CGRectMake(0.0f, rect.size.height - 10.0f, rect.size.width, 10.0f));
CGContextBeginPath(c);
CGContextMoveToPoint(c, 0.0f, rect.size.height - 10.0f);
CGContextAddLineToPoint(c, 0.0f, rect.size.height);
CGContextAddLineToPoint(c, rect.size.width, rect.size.height);
CGContextAddLineToPoint(c, rect.size.width, rect.size.height - 10.0f);
CGContextStrokePath(c);
CGContextClipToRect(c, CGRectMake(0.0f, 0.0f, rect.size.width, rect.size.height - 10.0f));
} else if (position == CustomCellBackgroundViewPositionBottom) {
CGContextFillRect(c, CGRectMake(0.0f, 0.0f, rect.size.width, 10.0f));
CGContextBeginPath(c);
CGContextMoveToPoint(c, 0.0f, 10.0f);
CGContextAddLineToPoint(c, 0.0f, 0.0f);
CGContextStrokePath(c);
CGContextBeginPath(c);
CGContextMoveToPoint(c, rect.size.width, 0.0f);
CGContextAddLineToPoint(c, rect.size.width, 10.0f);
CGContextStrokePath(c);
CGContextClipToRect(c, CGRectMake(0.0f, 10.0f, rect.size.width, rect.size.height));
} else if (position == CustomCellBackgroundViewPositionMiddle) {
CGContextFillRect(c, rect);
CGContextBeginPath(c);
CGContextMoveToPoint(c, 0.0f, 0.0f);
CGContextAddLineToPoint(c, 0.0f, rect.size.height);
CGContextAddLineToPoint(c, rect.size.width, rect.size.height);
CGContextAddLineToPoint(c, rect.size.width, 0.0f);
CGContextStrokePath(c);
return; // no need to bother drawing rounded corners, so we return
}
// At this point the clip rect is set to only draw the appropriate
// corners, so we fill and stroke a rounded rect taking the entire rect
CGContextBeginPath(c);
addRoundedRectToPath(c, rect, 10.0f, 10.0f);
CGContextFillPath(c);
CGContextSetLineWidth(c, 1);
CGContextBeginPath(c);
addRoundedRectToPath(c, rect, 10.0f, 10.0f);
CGContextStrokePath(c);
}
- (void)dealloc {
[borderColor release];
[fillColor release];
[super dealloc];
}
@end
static void addRoundedRectToPath(CGContextRef context, CGRect rect,
float ovalWidth,float ovalHeight)
{
float fw, fh;
if (ovalWidth == 0 || ovalHeight == 0) {// 1
CGContextAddRect(context, rect);
return;
}
CGContextSaveGState(context);// 2
CGContextTranslateCTM (context, CGRectGetMinX(rect),// 3
CGRectGetMinY(rect));
CGContextScaleCTM (context, ovalWidth, ovalHeight);// 4
fw = CGRectGetWidth (rect) / ovalWidth;// 5
fh = CGRectGetHeight (rect) / ovalHeight;// 6
CGContextMoveToPoint(context, fw, fh/2); // 7
CGContextAddArcToPoint(context, fw, fh, fw/2, fh, 1);// 8
CGContextAddArcToPoint(context, 0, fh, 0, fh/2, 1);// 9
CGContextAddArcToPoint(context, 0, 0, fw/2, 0, 1);// 10
CGContextAddArcToPoint(context, fw, 0, fw, fh/2, 1); // 11
CGContextClosePath(context);// 12
CGContextRestoreGState(context);// 13
}
首先感谢所有为这个代码。 我已经在这个函数绘图改变,以消除一些角落绘制问题。
-(void)drawRect:(CGRect)rect
{
// Drawing code
CGContextRef c = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(c, [fillColor CGColor]);
CGContextSetStrokeColorWithColor(c, [borderColor CGColor]);
CGContextSetLineWidth(c, 2);
if (position == CustomCellBackgroundViewPositionTop) {
CGFloat minx = CGRectGetMinX(rect) , midx = CGRectGetMidX(rect), maxx = CGRectGetMaxX(rect) ;
CGFloat miny = CGRectGetMinY(rect) , maxy = CGRectGetMaxY(rect) ;
minx = minx + 1;
miny = miny + 1;
maxx = maxx - 1;
maxy = maxy ;
CGContextMoveToPoint(c, minx, maxy);
CGContextAddArcToPoint(c, minx, miny, midx, miny, ROUND_SIZE);
CGContextAddArcToPoint(c, maxx, miny, maxx, maxy, ROUND_SIZE);
CGContextAddLineToPoint(c, maxx, maxy);
// Close the path
CGContextClosePath(c);
// Fill & stroke the path
CGContextDrawPath(c, kCGPathFillStroke);
return;
} else if (position == CustomCellBackgroundViewPositionBottom) {
CGFloat minx = CGRectGetMinX(rect) , midx = CGRectGetMidX(rect), maxx = CGRectGetMaxX(rect) ;
CGFloat miny = CGRectGetMinY(rect) , maxy = CGRectGetMaxY(rect) ;
minx = minx + 1;
miny = miny ;
maxx = maxx - 1;
maxy = maxy - 1;
CGContextMoveToPoint(c, minx, miny);
CGContextAddArcToPoint(c, minx, maxy, midx, maxy, ROUND_SIZE);
CGContextAddArcToPoint(c, maxx, maxy, maxx, miny, ROUND_SIZE);
CGContextAddLineToPoint(c, maxx, miny);
// Close the path
CGContextClosePath(c);
// Fill & stroke the path
CGContextDrawPath(c, kCGPathFillStroke);
return;
} else if (position == CustomCellBackgroundViewPositionMiddle) {
CGFloat minx = CGRectGetMinX(rect) , maxx = CGRectGetMaxX(rect) ;
CGFloat miny = CGRectGetMinY(rect) , maxy = CGRectGetMaxY(rect) ;
minx = minx + 1;
miny = miny ;
maxx = maxx - 1;
maxy = maxy ;
CGContextMoveToPoint(c, minx, miny);
CGContextAddLineToPoint(c, maxx, miny);
CGContextAddLineToPoint(c, maxx, maxy);
CGContextAddLineToPoint(c, minx, maxy);
CGContextClosePath(c);
// Fill & stroke the path
CGContextDrawPath(c, kCGPathFillStroke);
return;
}
}
发表评论
-
appStore上传苹果应用程序软件发布流程
2012-10-31 09:51 18641.进入开发者中心,进 ... -
iPhone的App的目录结构
2012-10-31 09:57 981iPhone的App的目录结构如下: 对于一个运 ... -
iPhone开发经典语录集锦
2012-10-30 00:50 904如果大家和我一样有感触的话,可以跟在帖子下面,最好简短并附上 ... -
ASIHTTPRequest 详解
2012-10-31 09:57 1024目录 目录 发起一个同步请求 创建一个异步请求 队列请 ... -
【引用】iPhone的App的目录 【引用】iPhone-国际化Iphon
2012-11-04 21:30 946博主:易飞扬 原文链接 : http://www.yifei ... -
iphone开发之 - 启动页面设置
2012-10-31 09:58 1222不管是开发个人项目还是公司项目,大家通常都有一个需求,就 ... -
限制UITextField输入长度的方法
2013-01-26 23:04 888在 iPhone 应用里经常要限制用户输入字符的长度,比如密 ... -
【引用】iphone开发的好网站
2012-10-20 02:29 2783分享iphone开发的好网站,希望大家也能提供一些分享下 ... -
IOS开源项目汇总
2013-01-26 23:05 1460前几天看到一位会员,总结了一些开源的IOS项目,我结合自己开发 ... -
Object-C 中的Selector 概念
2013-01-26 23:05 917Object-C 中的Selector 概念 Andrew ... -
Xcode SVN配置
2012-10-19 00:14 1057Xcode SVN配置 编辑 ~/.subversion/co ... -
iphone定位 基本知识
2012-10-04 23:54 867找到一个关于iphone定位 ... -
object c 中 retain 和copy的区别
2012-10-04 23:49 955原来简单解释过属性定义(Property) ,并且提起了简单 ... -
objective-c中property的属性
2012-10-04 23:44 942[size=large][/size][color=blue] ...
相关推荐
这个名为“iPhone图片转换工具”的程序正是为了解决这样的问题而设计的。iPhone设备上的图片通常采用的是非标准格式,比如HEIC(High Efficiency Image File Format),这是一种由Apple推出的新一代图像文件格式,...
【标题】"仿iPhone图片3D切换效果"指的是在网页中实现的一种模拟iPhone手机中图片浏览的3D切换动画。这种效果通常是通过JavaScript库或CSS3技术来完成,旨在为用户提供更加直观、生动且富有立体感的图片浏览体验,...
1、使用iPhone或者Ipad等IOS设备拍照后,系统生成的图片名(“IMG_6421.JPG”)不直观,想直接看到照片的拍照时间(“20161116_6421.JPG”)。 2、需要将IOS设备的图片导出到电脑某个文件夹。 3、这个软件真是太好用...
这个"iphone 图片翻页demo 源码"提供了一个使用UIScrollView结合UIPageControl实现这一功能的简单示例。接下来,我们将深入探讨这个Demo中涉及的关键知识点。 首先,`UIScrollView`是iOS SDK中用于显示可滚动内容的...
在iOS开发中,实现iPhone图片的放大和缩小功能通常涉及到`UIScrollView`的使用。`UIScrollView`是苹果提供的一个视图类,它允许用户通过滚动来查看超过屏幕大小的内容。在这个场景下,我们主要关注如何在`...
"网站素材iphone图片"这个主题,显然聚焦于为iPhone设备优化的网页设计提供高质量的图像资源。这些图片通常具有高分辨率、清晰度和适合移动设备的尺寸,以确保在iPhone的小屏幕上也能呈现最佳效果。 PNG是一种无损...
以上就是实现iOS iPhone图片放大放小的基本步骤。在实际项目中,你可能还需要处理其他细节,如处理手势冲突、动画过渡等。记得在开发过程中,始终关注用户体验,确保操作流畅且易于理解。通过熟练掌握这些技术,你...
"iPhone 图片加密例程"提供了一种实现这一功能的方法。在这个示例中,我们将探讨图片加密的基本原理,以及如何在iOS应用中实现这个过程。本文将深入讲解相关技术,包括数据加密标准(DES)、高级加密标准(AES)以及...
在iPhone上进行图片浏览是日常生活中非常常见的操作,无论是在社交应用中分享照片,还是查看存储在设备上的个人照片,都是我们与手机互动的重要部分。本文将深入探讨iPhone的图片浏览功能,包括相册的自动播放特性...
"iOS iPhone 图片拉伸源代码"这个主题主要涉及如何在iPhone应用中处理图片的伸缩和自适应。在这个压缩包中,可能包含了一个名为"ImageResizer"的源代码文件,它可能是一个类或者工具,用于帮助开发者高效地进行图片...
iphone图片切换效果
首先,我们要明白iPhone图片还原的基本概念。当用户误删除或者丢失了iPhone上的照片,可以通过备份或者其他数据恢复工具来尝试找回这些图片。在描述中提到的“测试通过可以的”,暗示了一个成功的图片恢复案例,这...
在JavaScript编程领域,创建类似iPhone图片切换效果是一种常见的需求,特别是在网页设计和移动应用界面的开发中。这种效果能够提供用户友好的体验,使浏览图片变得更加流畅和直观。本教程将详细讲解如何利用...
android_iphone图片适配尺寸
1.这个版本是免费的,亲测,很好用...2.这个工具主要用来整合iPhone图片的,就是将很多小图片存放到大图片中,同时生成plist文件 3.我的其他ios资源,欢迎下载, 地址: http://download.csdn.net/user/coolfish1989_10
Android安卓代码模拟Iphone图片拖动效果,似乎这个效果Android原生系统中就有啊,就是用手指滑来滑去拖动图片的效果,在Android中,我是自己写代码实现的,也算是对苹果IOS中的图片拖动进行了一个模拟。 注:部分...
这个js仿iPhone图片展示特效的实现涉及到了前端开发的多个方面,对于想要提升JavaScript交互能力的开发者来说,是一个很好的学习资源。通过深入研究和实践,不仅可以掌握相关的技术,还能了解到如何将这些技术应用到...
仿iPhone/iPod动态图片浏览器 仿iPhone/iPod动态图片浏览器 仿iPhone/iPod动态图片浏览器
标题"iPhone-PDF以图片形式显示"涉及到的是如何在iPhone上查看以图片形式呈现的PDF文件。 在iOS系统中,内置的“文件”应用支持打开和预览PDF文件,但默认情况下它并不会将PDF转化为图片。如果你收到的PDF是以图片...
1.这是iPhone的一个图片整合工具,是付费的,但是偶成功获得了license,哈哈,亲测,灰常好用。 先安装好工具,安装完成后,软件会提示你安装license,引入就是了 2.还有一个很好的图片整合工具,也推荐给大家,地址...