使用背景图像自定义 UIBarbuttonitem

2024-01-23

我添加了一个 UIToolbar 实例和其顶部的按钮。每个按钮都属于 UIBarButtonItem 类。

我的要求是每个按钮都有一个自定义的布局,我不想使用苹果提供的原生按钮样式。所以我在 Interface Builder 中有 3 个选项(普通、边框、完成)。 我选择了“平原”样式,并选择了要添加为背景的图像 栏项目 -> 图像。

但它对我来说不起作用,使用普通选项让我更接近一点,因为边框和完成距离更近,但它仍然以白色轮廓显示图像。无论如何,是否添加了按钮上的图像,并且它们看起来完全一样。使用 UIButton 时这是一个非常简单的任务。我只是在 UIButton 的属性检查器中使用了图像选项并选择了我想要的图像。但在这里使用 UIBarButtonitem 时它根本不起作用。 这是它的显示方式

谢谢 泰穆尔


Taimur,

我遇到了和你遇到的同样的问题。我们的设计师为应用程序导航栏中的按钮指定了自定义外观。这是我编写的用于生成我们需要的 UIBarButtonItems 的实用方法,您应该能够根据您的需要修改它:

+ (UIBarButtonItem *)createSquareBarButtonItemWithTitle:(NSString *)t target:(id)tgt action:(SEL)a
{
    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
    // Since the buttons can be any width we use a thin image with a stretchable center point
    UIImage *buttonImage = [[UIImage imageNamed:@"SquareButton.png"] stretchableImageWithLeftCapWidth:5 topCapHeight:0];
    UIImage *buttonPressedImage = [[UIImage imageNamed:@"SquareButton_pressed.png"] stretchableImageWithLeftCapWidth:5 topCapHeight:0];

    [[button titleLabel] setFont:[UIFont boldSystemFontOfSize:12.0]];
    [button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
    [button setTitleColor:[UIColor whiteColor] forState:UIControlStateHighlighted];
    [button setTitleShadowColor:[UIColor colorWithWhite:1.0 alpha:0.7] forState:UIControlStateNormal];
    [button setTitleShadowColor:[UIColor clearColor] forState:UIControlStateHighlighted];
    [[button titleLabel] setShadowOffset:CGSizeMake(0.0, 1.0)];

    CGRect buttonFrame = [button frame];
    buttonFrame.size.width = [t sizeWithFont:[UIFont boldSystemFontOfSize:12.0]].width + 24.0;
    buttonFrame.size.height = buttonImage.size.height;
    [button setFrame:buttonFrame];

    [button setBackgroundImage:buttonImage forState:UIControlStateNormal];
    [button setBackgroundImage:buttonPressedImage forState:UIControlStateHighlighted];

    [button setTitle:t forState:UIControlStateNormal];

    [button addTarget:tgt action:a forControlEvents:UIControlEventTouchUpInside];

    UIBarButtonItem *buttonItem = [[UIBarButtonItem alloc] initWithCustomView:button];

    return [buttonItem autorelease];
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用背景图像自定义 UIBarbuttonitem 的相关文章

  • prepareForSegue 和 PerformSegueWithIdentifier 发送方

    我想知道标题中的函数如何工作以及发送者参数 假设单击按钮调用了performSegue方法 那么这是否也调用了prepareSegue方法 是否在performSegue方法之前但在按下按钮之后调用prepareSegue方法 另外 这两个
  • 如何检测 iOS 8 上的包含应用程序是否启用了应用程序扩展?

    我正在 iOS 8 beta 上开发一个自定义键盘 我想告诉用户如果我的自定义键盘未启用 如何在包含应用程序中启用它 有什么方法可以检测应用程序扩展是否已启用 首先让我们设置一些常量 以便于彼此理解 包含应用程序 安装扩展并保存扩展二进制文
  • iPhone OS 3.0.1 会毁掉你的开发手机吗?

    我将手机更新到3 0 1 虽然手机作为手机工作正常 xcode http en wikipedia org wiki Xcode组织者不再知道手机的名称 它还说这个版本的 xcode 不支持 3 0 1 我下载了最新版本的xcode和操作系
  • 如何使自定义绘制的 UITableViewCell 正确调整大小?

    出于性能原因 我在自定义视图中绘制 UITableViewCell 的字符串 该视图重写其 drawRect 方法 以使用 NSString drawInRect 直接在视图矩形中绘制字符串 这类似于 Apple 的 TableViewSu
  • Excel 工作表到 iPhone 数据 -- A 点到 B 点

    尽可能简单 我有一个非常简单的 Excel 电子表格 只有 1000 多条记录 我想将其用作 iPhone 应用程序的静态数据源 最好的进攻计划是什么 我心中的可能性 1 直接读取XLS作为数据源 是否有Obj C库用于此 2 将XLS 转
  • TableView 中图像的大小不正确

    我正在使用来自 URL 的图像创建一个表视图 但图像不会调整到所有视图的大小 直到我将其按入行中 知道为什么会发生这种情况吗 这是一个自定义的表格视图 我的代码是 UITableViewCell tableView UITableView
  • 如何在iphone APP中下载facebook和Picasso的图片

    任何人告诉我有关 iphone 中从 facebook 和 picassa 下载图像的功能 我正在其中制作应用程序 我想制作通过我的应用程序从 picassa 和 facebook 下载选定图像的功能 那么我必须做什么 谢谢 查看NSURL
  • 如何检测 UISearchBar/UITextField 输入中的暂停?

    我有以下 UISearchbar 代码 void searchBar UISearchBar searchBar textDidChange NSString searchText UIApplication sharedApplicati
  • iPhone AVFoundation 相机方向

    我一直在绞尽脑汁地试图让 AVFoundation 相机以正确的方向 即设备方向 捕获图片 但我无法让它工作 我看过教程 看过 WWDC 演示 还下载了 WWDC 示例程序 但即使这样也没有成功 我的应用程序的代码是 AVCaptureCo
  • 横向旋转到纵向时的字体大小怪异 - CSS 媒体查询 - iPhone5 Safari

    我已经用谷歌搜索了这个 但无法弄清楚 谢谢你的帮助 Studiolynch com 响应式和流体布局 在 iphone 5 Safari 中完美运行 除了从横向模式旋转到纵向模式会使字体大小小于应有的大小 但是 如果您最初以纵向模式加载页面
  • 如何将 UIImageView 裁剪为自定义形状

    用户是否可以在该位周围画一条虚线 圆圈 UIImageView他们希望裁剪到 然后为UIImageView调整大小到这些点 这有点像 Photoshop 中的套索 选取框效果 更新 从 iOS 8 x 开始 UIImageView 提供了m
  • 无需 iPhone 6 Plus 即可预览 iOS 应用程序

    我已经在 Yosemite 中使用 iPhone 6 和 Quicktime 完成了 iOS 应用程序预览 视频 但我无法在 iTunes Connect 中为 iPhone 6 上传它 而且我没有 iPhone 6 设备 有没有办法在没有
  • 将语音添加到自定义 UIMenuController

    我创建了一个自定义UIMenuController in a UIWebView但它似乎摆脱了 说出选择 选项UIMenuController在那之后 所有测试设备上的 偏好设置 中都打开了发言选择选项 并且它出现在其他应用程序中 包括非
  • UISlider不会自动重绘

    我的应用程序上有一个 UISlider 有时我不仅需要更新它的值 还需要更新它的minimumValue 值已更改 但如果我调用 setValue 方法或为滑块分配新值 它会具有新值 但滑块不会将自身重新绘制到该新值应有的位置 我怎样才能重
  • 用于具有转换的非导航应用程序的视图控制器/NIB 架构?

    我正在修补一个 iPad 应用程序 就像许多 iPad 应用程序一样 它不使用 UINavigation 根视图控制系统 因此我没有每个应用程序 视图 的自然所有权 我基本上有两个基本视图 文档列表视图和文档编辑视图 我正在使用 UIVie
  • 如何为图层阴影不透明度设置动画?

    我有一个视图 我已将 LayerOpacity 设置为 1 theView layer shadowOpacity 1 0 当视图位于屏幕下方时 这看起来很好 当我将此视图向上移动以与另一个有阴影的视图齐平时 它们看起来不太好 有没有办法让
  • 访问 google reader 的 Endpoints API 时出错

    我正在尝试在iPhone APP中实现google reader 到目前为止我已经成功收到了sid and auth 当我尝试使用以下命令调用 Endpoints API 时 问题就出现了GET 这是代码 ASIHTTPRequest re
  • 如何检索 iPhone 的区域设置

    我用谷歌搜索过它 但令我有点惊讶的是我找不到它 我只想访问设备配置的区域设置 我试图找到如何列出所有系统属性 以防我能在那里找到区域设置 但甚至找不到如何做到这一点 我知道 认为 我之前检索过系统属性 但我也记得在谷歌搜索时找到该信息并不容
  • 从plist文件中读取数据

    我正在尝试为我的 iPhone 应用程序实现保存状态 我有一个名为 SaveData plist 的 plist 文件 我可以通过以下方式读取它 NSString pListPath2 bundle pathForResource Save
  • iPhone Twitter SDK 与 iOS 5 设备的集成问题

    我已成功将 Twitter Sharekit 与我的 iPad 应用程序源集成 当我在模拟器和装有 iOS 4 X 的 iPad 1 上测试该应用程序时 它运行完美 并且成功发布了推文 但是 如果我在装有 iOS 5 的 iPad 2 上安

随机推荐

  • JavaScript跨域调用:从HTTP到HTTPS的调用

    我需要对同一域的安全 HTTPS URL 进行异步调用 目前该页面正在使用常规 HTTP 非安全 换句话说 这是调用同一域中但使用 HTTPS 的 URL 在将此调用切换到 HTTPS 之前 我结束了实现服务器端代理以允许跨域 AJAX 调
  • 将 RTF 转换为纯文本

    我有一个 ERP 系统 它以 RTF 格式存储文本 我试图从中提取纯文本 我通过谷歌搜索并找到了类似的解决方案this one http webcheatsheet com php reading the clean text from r
  • 如何为 Dart 编写注释

    问题 实现注释的过程是什么 如何或者何时可以激活您开发的注释 I can t seem to find an example or tutorial on how to write a class to implement annotati
  • 如何使用 Java 为列表中的每个字符串添加或插入 ' (单引号),其中字符串以逗号分隔

    我有一个如下列表 url1 url2 url3 url4 该列表将基于 HTML 下拉列表中的多项选择 因此列表大小 即列表元素 会动态变化 我的问题是我无法获得将单引号添加到字符串的逻辑 我希望上面的字符串列表显示为 url1 url2
  • 将数据从一个表复制到另一个不同的列名

    我在将一个表的数据复制到另一个表时遇到问题 我有大约 100 个左右的单独表 它们通常具有相同的字段名称 但并非总是如此 我需要能够复制和映射字段 示例 源表是 BROWARD 并且具有列名称 broward ID name dob add
  • Ionic - 添加/删除phonegap-push-plugin - 未找到 CocoaPods

    我正在编写一个 Ionic 应用程序 但遇到了很多问题 特别是一个问题是 当我尝试使用以下命令添加phonegap push plugin时 sudo ionic plugin add phonegap plugin push 我收到以下错
  • Spring Boot 中如何划分 dev 和 prod 环境的 Liquibase 包结构?

    我的包结构如下 In db changelog db changelog master xml我包括 db changelog v1 db changelog 1 0 xml我还包括来自的所有变更日志 db changelog v1 cha
  • Make_shared - 自己的实现

    我正在尝试自己实现shared ptr 我有以下问题make shared 主要特点是std make shared它在连续的内存块中分配计数器块和对象 我怎样才能做同样的事情 我尝试做类似的事情 template
  • html 文件中的 php 代码未执行

    在我的服务器上 我使用 nginx 和 php5 fpm 不是 Apache 我的 index php 文件中的所有 HTML JavaScript 和 php 代码都运行良好 但如果我将文件重命名为index html 嵌入的php 代码
  • 使用 tr 将换行符替换为空格[重复]

    这个问题在这里已经有答案了 有输出来自sed http sitename com galleries 83450 72 profile 这两个字符串应该合并为一个并用空格分隔 例如 http sitename com galleries 8
  • 如何在SYNONYMS中获取Oracle中的所有列

    我知道如何获取oracle中的所有列 select from all tab columns 但我怎样才能从中获取所有列SYNONYMSas well 在oracle中可以做到这一点吗 这不是有点多余吗 如果您可以看到同义词指向的表 那么从
  • 如何在 AngularJS 中使用 ng-repeat 迭代 JavaScript 地图?

    我正在尝试在 ng repeat Angular 指令中使用 JavaScript 地图 在搜索时我发现可以这样完成 ul li span Key key value value span li ul 但这仅适用于普通的 JSON 对象 当
  • Laravel 5 SQLSTATE[42S22]:找不到列

    我正在做一些连接并尝试获取数据 我的查询生成器是 datasource DB table vehicles gt join brands vehicles brand id brands id gt join sections vehicl
  • UIActivityViewController 在共享文件后关闭当前视图控制器

    UIActivityViewController 在共享文件后关闭呈现的视图控制器 这种情况仅发生在 iOS 13 中 有什么永久的解决办法吗 其他应用程序更新到 iOS 13 后似乎也存在此问题 class VC UIViewContro
  • Rails:为数据库适配器指定了“mysql2”,但未加载 gem

    显然有一个线程可以解决这个问题 但我已经尝试运行解决方案中给出的那些命令 由于某种原因我仍然遇到同样的错误 I run gem install mysql2 v 0 3 18 其次是bundle install 在我的终端上 然后我通过输入
  • 使用 C# 中的 WebBrowser 控件提交网页表单

    我在 SO 以及一般网络上看到了很多关于这个特定主题的帖子 大多数 如果不是全部 代码如下所示 private void btnSubmit Click object sender RoutedEventArgs e webBrowser1
  • 如何在 Visual Studio 中最好地处理巨大的源代码文件

    我正在开发一个大量使用代码生成的项目 它生成的一些文件包含超过 25 万行代码 VS 2K5 处理得还不错 但 R 4 01 每隔两分钟左右就会抛出一个内存不足异常 将它们拆分为部分类 单独的文件并不是短期内的选择 尽管可能会稍后 有什么聪
  • 观察到包 ID 'build-tools;20.0.0' 位置不一致

    gradlew parallel app assembleDebugTest 当我运行上面的命令时安卓工作室终端我收到此错误 Error并行执行是一个正在孵化的功能 在不一致的位置 sdk build tools android 4 4W
  • STL 中的比较器

    我正在使用 struct minHeap 使用priority queue生成最小堆 并且函数comp使用STL中给出的排序函数以相反的顺序打印数字 现在我的疑问是我不能在函数 sort 中使用 struct minHeap 也不能在pri
  • 使用背景图像自定义 UIBarbuttonitem

    我添加了一个 UIToolbar 实例和其顶部的按钮 每个按钮都属于 UIBarButtonItem 类 我的要求是每个按钮都有一个自定义的布局 我不想使用苹果提供的原生按钮样式 所以我在 Interface Builder 中有 3 个选