iOS开发项目—07图片拉伸

iOS开发项目—07图片拉伸

一、简单说明

1.代码说明:

图片处理代码:

1 + (UIImage *)resizedImage:(NSString *)name
2 {
3     UIImage *image = [UIImage imageWithName:name];
4     return [image stretchableImageWithLeftCapWidth:image.size.width * 0.5 topCapHeight:image.size.height * 0.5];
5 }
6 //以长度的一半,高度的一半为中心进行拉伸。

调用拉伸(1)

 1 /**
 2  *  点击标题点击
 3  */
 4 - (void)titleClick:(UIButton *)titleButton
 5 {
 6     // 换成箭头向上
 7     [titleButton setImage:[UIImage imageWithName:@"navigationbar_arrow_up"] forState:UIControlStateNormal];
 8
 9
10     // 弹出菜单
11     UIButton *button = [UIButton buttonWithType:UIButtonTypeContactAdd];
12     button.backgroundColor = [UIColor blueColor];
13
14
15     HMPopMenu *menu = [[HMPopMenu alloc ] initWithContentView:nil];
16     menu.delegate = self;
17     menu.arrowPosition = HMPopMenuArrowPositionCenter;
18     //    menu.dimBackground = YES;
19     [menu showInRect:CGRectMake(0, 0, 100, 200)];
20 }

效果:

2.弹出菜单存在的问题:当宽度大于217的时候,就会有问题。

代码:

 1 /**
 2  *  点击标题点击
 3  */
 4 - (void)titleClick:(UIButton *)titleButton
 5 {
 6     // 换成箭头向上
 7     [titleButton setImage:[UIImage imageWithName:@"navigationbar_arrow_up"] forState:UIControlStateNormal];
 8
 9     // 弹出菜单
10     UIButton *button = [UIButton buttonWithType:UIButtonTypeContactAdd];
11     button.backgroundColor = [UIColor blueColor];
12
13     HMPopMenu *menu = [[HMPopMenu alloc ] initWithContentView:nil];
14     menu.delegate = self;
15     menu.arrowPosition = HMPopMenuArrowPositionCenter;
16     //    menu.dimBackground = YES;
17     [menu showInRect:CGRectMake(0, 0, 300, 200)];
18 }

实现效果:

产生问题的原因:拉伸图片的方式不对。拉伸让箭头的实现出现了问题,可以尝试换一种拉伸的方式。

之前的拉伸是对中间的百分之五十进行拉伸,变换为拉伸最右边的部分也不能彻底的解决问题。

说明:新浪官方在面对这个问题的时候,美工把菜单的图片设置的很大,为434,所以如果拉伸的范围在217内,那就不会有影响。(调整CGRectMake的宽度),在做上边有小箭头的图片时,把图片的宽度做足一点。

iOS开发项目—07图片拉伸,布布扣,bubuko.com

时间: 2024-12-27 14:35:28

iOS开发项目—07图片拉伸的相关文章

iOS开发项目篇—12搜索框的封装

iOS开发项目篇—12搜索框的封装 一.在“发现”导航栏中添加搜索框 1.实现代码 1 #import "YYDiscoverViewController.h" 2 3 @interface YYDiscoverViewController () 4 5 @end 6 7 @implementation YYDiscoverViewController 8 9 - (void)viewDidLoad 10 { 11 [super viewDidLoad]; 12 13 //添加搜索框

iOS开发项目篇—10对齐方式

iOS开发项目篇—10对齐方式 一.关于四个容易混淆属性的对比说明 1. textAligment : 文字的水平方向的对齐方式 (1) 取值 NSTextAlignmentLeft      = 0,    // 左对齐 NSTextAlignmentCenter    = 1,    // 居中对齐 NSTextAlignmentRight    = 2,    // 右对齐 (2) 哪些控件有这个属性 : 一般能够显示文字的控件都有这个属性 * UITextField * UILabel

iOS开发项目-02添加子控制器以及项目分层

iOS开发项目-02添加子控制器以及项目分层 一.添加子控制器 1.设置根控制器(自定义) 说明:分析新浪微博应用,观察其整体建构层次.而系统的控制器不能满足项目开发的需求,这里把项目中原有的控制器删除. 自己定义一个TabBarViewController类.让这个类作为window窗口的根控制器. YYAppDelegate.m文件代码: 1 #import "YYAppDelegate.h" 2 #import "YYTabBarViewController.h&quo

iOS开发项目篇—16OAuth授权简介

iOS开发项目篇—16OAuth授权简介 一.资源的授权 在互联网行业,公司要能长期存活下来,用户量很重要,比如腾讯.新浪,它们的用户量是非常巨大的 要想长期留住用户,用户资源(数据)的管理也很重要,如果你经常在不经过用户同意的情况下,把用户的一些资源共享出去,那肯定是留不住用户的,甚至会遭到法律的制裁 但是,有时候确实要把某些用户资源共享出去,比如第三方想访问用户的QQ数据.第三方想访问用户的新浪微博数据 要想把用户资源共享出去,就必须取得用户的同意,那么这里就有个资源授权的问题 资源授权的方

iOS开发项目篇—34获取用户信息

iOS开发项目篇—34获取用户信息 一.简单说明 需求:获取当前用户的昵称 ,需要获取当前登录用户的个人信息. 查看接口 要求传递的参数 这里要获取的时用户的昵称(所以使用用户id作为参数传入) 二.实现代码 1 - (void)viewDidLoad 2 { 3 [super viewDidLoad]; 4 5 //设置导航栏内容 6 [self setupNavBar]; 7 8 //集成刷新控件 9 [self setupRefresh]; 10 11 //设置用户的昵称为标题 12 [s

iOS开发项目篇—29自定义工具条

iOS开发项目篇—29自定义工具条 一.简单说明 1.实现效果: 2.实现思路: (1)尝试: 1 //添加子控件 2 -(void)setupTextView 3 { 4 //1.创建输入控件 5 YYTextView *textView=[[YYTextView alloc]init]; 6 //设置frame 7 textView.frame=self.view.bounds; 8 [self.view addSubview:textView]; 9 self.textView=textV

iOS开发项目篇—27自定义UITabBar

iOS开发项目篇—27自定义UITabBar 一.自定义 思路: (1)新建一个继承自UITabBar的类,自定义一个UITabBar (2)用自定义的UITabBar换掉系统的UItabBar(使用了KVC) (3)监听控制器的切换,只要控制器一切换,就调用代理方法强制重新布局子控件(内部会调用layoutSubviews). YYTabBar.m文件代码: 1 // 2 // YYTabBar.m 3 // 4 5 #import "YYTabBar.h" 6 7 @interfa

iOS开发项目篇—08新版本特性·SrollView

iOS开发项目篇—08新版本特性 一.简单说明 展示新版本的特性:第一次使用一些应用软件时,展示这个版本的软件的新特性,一般在第一次启动程序的时候显示. 1.什么情况下显示版本新特性: (1)第一次使用某个软件时(X) (2)第一次使用某个版本时,显示版本新特性(V) 2.怎么知道这个软件的版本呢? 在plist文件里,bundle version中显示版本号. 3.如何显示版本新特性? 应该在YYAppDelegate.m中进行判断: 如果是第一次使用这个版本,那么就显示版本新特性(设置为wi

iOS开发项目篇—50设置cell的背景

iOS开发项目篇—50设置cell的背景 一.简单说明 当前样式: 1.去掉分隔线 2.设置背景图片(新浪提供了四种图片,底部的图片有阴影) cell的四种背景图 问题:cell怎么知道自己当前是处在第几组的第几行? 在自定义cell中提供一个方法,共外界传递当前的组和行 YYCommonCell.h文件 1 // 2 // YYCommonCell.h 3 // 4 5 #import <Foundation/Foundation.h> 6 @class YYCommonItem; 7 @i