ios彩票标题按钮(左文字右图片)

 1 #import <UIKit/UIKit.h>
 2
 3 @interface NJTitleButton : UIButton
 4
 5 @end
 6
 7
 8 #import "NJTitleButton.h"
 9
10 @interface NJTitleButton ()
11 @property (nonatomic, strong) UIFont *myFont;
12 @end
13
14 @implementation NJTitleButton
15
16 - (id)initWithCoder:(NSCoder *)aDecoder
17 {
18
19     if (self = [super initWithCoder:aDecoder]) {
20         [self setup];
21     }
22     return self;
23 }
24
25 - (id)initWithFrame:(CGRect)frame
26 {
27     if (self = [super initWithFrame:frame]) {
28          [self setup];
29     }
30     return self;
31 }
32 - (void)setup
33 {
34     // 记录按钮标题的字体
35     self.myFont = [UIFont systemFontOfSize:15];
36     // 设置标题的字体
37     self.titleLabel.font = self.myFont;
38     // 设置按钮的图片显示的内容默认为剧中(为了不拉伸)
39     self.imageView.contentMode = UIViewContentModeCenter;
40 }
41
42 // 用于返回按钮上标题的位置, 传入按钮的rect
43 - (CGRect)titleRectForContentRect:(CGRect)contentRect
44 {
45     CGFloat titleX = 0;
46     CGFloat titleY = 0;
47     CGFloat titleH = contentRect.size.height;
48     // 获取当前按钮上的文字
49 //    [self titleForState:UIControlStateNormal];
50     NSString *title = self.currentTitle;
51     CGSize maxSize = CGSizeMake(MAXFLOAT, MAXFLOAT);
52     NSMutableDictionary *md = [NSMutableDictionary dictionary];
53     // 死循环的原因是self.titleLabel需要访问titleLabel, 而self.titleLabel又需要调用当前方法获取title的范围, 所有死循环
54 //    md[NSFontAttributeName] = self.titleLabel.font;
55     NSLog(@"%@", self.myFont);
56     md[NSFontAttributeName] = self.myFont;
57
58     // 计算文字的范围
59     CGFloat titleW =  0;
60     // 判断是否是xcode5 , 如果是就编译一下代码, 如果不是就不编译
61     CGRect titleRect = [title boundingRectWithSize:maxSize options:NSStringDrawingUsesLineFragmentOrigin attributes:md context:nil];
62     titleW = titleRect.size.width;
63
64     return CGRectMake(titleX, titleY, titleW, titleH);
65 }
66 - (CGRect)imageRectForContentRect:(CGRect)contentRect
67 {
68
69     CGFloat imageY = 0;
70     CGFloat imageH = contentRect.size.height;
71     CGFloat imageW = 16;
72     // 图片的X = 按钮的宽度 - 图片宽度
73     CGFloat imageX = contentRect.size.width - imageW;
74     return CGRectMake(imageX, imageY, imageW, imageH);
75 }
76 @end
时间: 2024-10-08 20:50:24

ios彩票标题按钮(左文字右图片)的相关文章

iOS开发项目篇—14点击标题按钮弹出菜单

iOS开发项目篇—14点击标题按钮弹出菜单 一.简单说明 (1)简单实现 点击标题按钮弹框,在箭头向上的时候,显示标题菜单 把ImageView添加到谁的身上?三角形的箭头在导航栏上,因此不能添加到tableview上. 分析图示: 有两个两种方法可以考虑: (1)添加到导航控制器上,因为导航栏是在导航控制器上的. (2)不用考虑控制器,直接添加到窗口上. 拿到窗口 (1)self.view.window这个属性谨慎使用,当开始加载的时候,为空 (2)获取主窗口  [UIApplication

[iOS微博项目 - 1.5] - NavigationBar标题按钮

A.NavigationBar标题按钮 1.需求 在“首页”的导航栏中部设置一个“首页”文字+箭头按钮 统一设置样式 根据实际文本长度调整宽度 消除系统自带的点击高亮效果 点击按钮,箭头上下颠倒 github: https://github.com/hellovoidworld/HVWWeibo 2.思路 使用UIButton,设置文本和图片 在initWithFrame统一样式 创建一个继承UIButton的自定义类,重写文本和图片的绘图方法,互换位置 设置一个标识成员变量,判断当前的按钮状态

iOS 设置导航栏之二(设置导航栏的颜色、文字的颜色、左边按钮的文字及颜色)

                  #import <UIKit/UIKit.h> @interface AppDelegate : UIResponder <UIApplicationDelegate> @property (strong, nonatomic) UIWindow *window; @end #import "AppDelegate.h" #import "KeyViewController.h" @interface Ap

【转】自定义iOS的Back按钮(backBarButtonItem)和pop交互手势(interactivepopgesturerecognizer) --- 不错

原文网址:http://blog.csdn.net/joonsheng/article/details/41362499 序 说到自定义UINavigetionController的返回按钮,iOS7以后,多了一个“<” 这样的返回图标,而目前主流的应用,都是只保留了“<”,而去掉了文字,那么怎么样自定义一个自己的“<"按钮,或者用系统的“<”,但不要文字呢? 1.设置中的返回按钮(带文字) 2.音乐中播放时(不带文字) 1.直接上答案 [objc] view plain

IOS--- NavigationBar标题按钮

A.NavigationBar标题按钮 1.需求 在“首页”的导航栏中部设置一个“首页”文字+箭头按钮 统一设置样式 根据实际文本长度调整宽度 消除系统自带的点击高亮效果 点击按钮,箭头上下颠倒 github: https://github.com/hellovoidworld/HVWWeibo 2.思路 使用UIButton,设置文本和图片 在initWithFrame统一样式 创建一个继承UIButton的自定义类,重写文本和图片的绘图方法,互换位置 设置一个标识成员变量,判断当前的按钮状态

自定义导航栏标题按钮

自定义标题栏按钮 @implementation SNTitleButton - (id)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if (self) { //图片居中 self.imageView.contentMode = UIViewContentModeCenter; //字体居右 self.titleLabel.textAlignment = NSTextAlignmentRight; //字体

选中按钮改变文字大小和颜色

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px "PingFang SC" } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px "PingFang SC"; min-height: 25.0px } p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #cf8724 }

iOS button 里边图片和文字的距离

很多次,系统默认的UIButton不能满足需求,每次都是查了很多资料,最后还是用最复杂的方式来修改button的标题和图片的位置,今天,花些时间来梳理一下这方面的知识... UIButton的默认布局是:title在右,image在左; 很多时候我们需要的是title在左边,或者title在下面,这时就需要调整UIButton的TitleLabel和ImageView的位置了,查了很多资料,要么零零散散的介绍,要么就是特别复杂的实现;经过一段时间的学习,在这里总结一下实现的方式; 一种是设置UI

备忘:UIButton 的图片和标题 向左对齐

UIButton setImage 和 setTitle之后,默认的 image和title 对齐方式是居中, 由于 title 长度不固定, 所以如果要几个这样有image有title的按钮纵向排列对齐, 无论你怎么调整 imageEdgeInsets和titleEdgeInsets,都有可能导致前面图片对得不整齐, 所以,干脆来个向左对齐!!简化处理!! 记住了,这么设置: btn.contentHorizontalAlignment = UIControlContentHorizontal