`

Iphone 图片

    博客分类:
  • IOS
 
阅读更多
如何自定义分组表视图/边框颜色的背景您需要设置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;

    }

}
分享到:
评论

相关推荐

    iPhone图片转换工具

    这个名为“iPhone图片转换工具”的程序正是为了解决这样的问题而设计的。iPhone设备上的图片通常采用的是非标准格式,比如HEIC(High Efficiency Image File Format),这是一种由Apple推出的新一代图像文件格式,...

    仿iphone图片3D切换效果

    【标题】"仿iPhone图片3D切换效果"指的是在网页中实现的一种模拟iPhone手机中图片浏览的3D切换动画。这种效果通常是通过JavaScript库或CSS3技术来完成,旨在为用户提供更加直观、生动且富有立体感的图片浏览体验,...

    iPhone图片名批量修改

    1、使用iPhone或者Ipad等IOS设备拍照后,系统生成的图片名(“IMG_6421.JPG”)不直观,想直接看到照片的拍照时间(“20161116_6421.JPG”)。 2、需要将IOS设备的图片导出到电脑某个文件夹。 3、这个软件真是太好用...

    iphone 图片翻页demo 源码

    这个"iphone 图片翻页demo 源码"提供了一个使用UIScrollView结合UIPageControl实现这一功能的简单示例。接下来,我们将深入探讨这个Demo中涉及的关键知识点。 首先,`UIScrollView`是iOS SDK中用于显示可滚动内容的...

    iphone 图片的放大缩小

    在iOS开发中,实现iPhone图片的放大和缩小功能通常涉及到`UIScrollView`的使用。`UIScrollView`是苹果提供的一个视图类,它允许用户通过滚动来查看超过屏幕大小的内容。在这个场景下,我们主要关注如何在`...

    网站素材iphone图片

    "网站素材iphone图片"这个主题,显然聚焦于为iPhone设备优化的网页设计提供高质量的图像资源。这些图片通常具有高分辨率、清晰度和适合移动设备的尺寸,以确保在iPhone的小屏幕上也能呈现最佳效果。 PNG是一种无损...

    IOS iphone 图片放大放小

    以上就是实现iOS iPhone图片放大放小的基本步骤。在实际项目中,你可能还需要处理其他细节,如处理手势冲突、动画过渡等。记得在开发过程中,始终关注用户体验,确保操作流畅且易于理解。通过熟练掌握这些技术,你...

    iphone 图片加密例程

    "iPhone 图片加密例程"提供了一种实现这一功能的方法。在这个示例中,我们将探讨图片加密的基本原理,以及如何在iOS应用中实现这个过程。本文将深入讲解相关技术,包括数据加密标准(DES)、高级加密标准(AES)以及...

    iphone图片浏览

    在iPhone上进行图片浏览是日常生活中非常常见的操作,无论是在社交应用中分享照片,还是查看存储在设备上的个人照片,都是我们与手机互动的重要部分。本文将深入探讨iPhone的图片浏览功能,包括相册的自动播放特性...

    iOS iPhone 图片拉伸源代码

    "iOS iPhone 图片拉伸源代码"这个主题主要涉及如何在iPhone应用中处理图片的伸缩和自适应。在这个压缩包中,可能包含了一个名为"ImageResizer"的源代码文件,它可能是一个类或者工具,用于帮助开发者高效地进行图片...

    iphone图片切换效果

    iphone图片切换效果

    还原iphone图片

    首先,我们要明白iPhone图片还原的基本概念。当用户误删除或者丢失了iPhone上的照片,可以通过备份或者其他数据恢复工具来尝试找回这些图片。在描述中提到的“测试通过可以的”,暗示了一个成功的图片恢复案例,这...

    js实现类似iphone图片切换效果简单实用

    在JavaScript编程领域,创建类似iPhone图片切换效果是一种常见的需求,特别是在网页设计和移动应用界面的开发中。这种效果能够提供用户友好的体验,使浏览图片变得更加流畅和直观。本教程将详细讲解如何利用...

    android_iphone图片适配尺寸

    android_iphone图片适配尺寸

    Zwoptex--iphone图片整合工具

    1.这个版本是免费的,亲测,很好用...2.这个工具主要用来整合iPhone图片的,就是将很多小图片存放到大图片中,同时生成plist文件 3.我的其他ios资源,欢迎下载, 地址: http://download.csdn.net/user/coolfish1989_10

    Android模拟Iphone图片拖动效果.rar

    Android安卓代码模拟Iphone图片拖动效果,似乎这个效果Android原生系统中就有啊,就是用手指滑来滑去拖动图片的效果,在Android中,我是自己写代码实现的,也算是对苹果IOS中的图片拖动进行了一个模拟。  注:部分...

    js仿iphone的图片展示特效

    这个js仿iPhone图片展示特效的实现涉及到了前端开发的多个方面,对于想要提升JavaScript交互能力的开发者来说,是一个很好的学习资源。通过深入研究和实践,不仅可以掌握相关的技术,还能了解到如何将这些技术应用到...

    仿iPhone/iPod动态图片浏览器

    仿iPhone/iPod动态图片浏览器 仿iPhone/iPod动态图片浏览器 仿iPhone/iPod动态图片浏览器

    iphone-pdf以图片形式显示

    标题"iPhone-PDF以图片形式显示"涉及到的是如何在iPhone上查看以图片形式呈现的PDF文件。 在iOS系统中,内置的“文件”应用支持打开和预览PDF文件,但默认情况下它并不会将PDF转化为图片。如果你收到的PDF是以图片...

    TexturePacker---iphone图片整合工具

    1.这是iPhone的一个图片整合工具,是付费的,但是偶成功获得了license,哈哈,亲测,灰常好用。 先安装好工具,安装完成后,软件会提示你安装license,引入就是了 2.还有一个很好的图片整合工具,也推荐给大家,地址...

Global site tag (gtag.js) - Google Analytics