UISegmentedcontrol 外观导致问题

2023-12-06

我需要有关 UISegment 外观的帮助,我在我的应用程序委托中设置了它,一切正常。

直到我添加此代码来更改我选择的段颜色,它才引起问题。

我在 viewDidLoad 时调用了 IBAction。

它应该显示这个

enter image description here

但它显示了这一点,我知道是外观问题,但现在不确定是否修复它......当我评论外观代码时,它将是第一张图片。

enter image description here

应用程序委托

   //normal segment
    [[UISegmentedControl appearance] setTitleTextAttributes:
     [NSDictionary dictionaryWithObjectsAndKeys:
      [UIFont fontWithName:@"Rokkitt" size:20.0],UITextAttributeFont,
      [UIColor colorWithRed:75.0/255.0 green:75.0/255.0 blue:75.0/255.0 alpha:1.0], UITextAttributeTextColor, 
      [UIColor clearColor], UITextAttributeTextShadowColor,
      [NSValue valueWithUIOffset:UIOffsetMake(0, 1)], UITextAttributeTextShadowOffset,
      nil] forState:UIControlStateNormal];


    //selected segment
    [[UISegmentedControl appearance] setTitleTextAttributes:
     [NSDictionary dictionaryWithObjectsAndKeys:
      [UIFont fontWithName:@"Rokkitt" size:20.0],UITextAttributeFont,
      [UIColor whiteColor], UITextAttributeTextColor, 
      [UIColor clearColor], UITextAttributeTextShadowColor,
      [NSValue valueWithUIOffset:UIOffsetMake(0, 1)], UITextAttributeTextShadowOffset,
      nil] forState:UIControlStateHighlighted];

IBA行动呼吁

// Get number of segments
    int numSegments = [infoSegment.subviews count];

    // Reset segment's color (non selected color)
    for( int i = 0; i < numSegments; i++ ) {
        // reset color
        [[infoSegment.subviews objectAtIndex:i] setTintColor:[UIColor colorWithRed:196.0/255.0 green:223.0/255.0 blue:155.0/255.0 alpha:1]];
    }

    // Sort segments from left to right
    NSArray *sortedViews = [infoSegment.subviews sortedArrayUsingFunction:compareViewsByOrigin context:NULL];

    // Change color of selected segment
    [[sortedViews objectAtIndex:infoSegment.selectedSegmentIndex] setTintColor:[UIColor colorWithRed:51.0/255.0 green:166.0/255.0 blue:85.0/255.0 alpha:1]];
        // Remove all original segments from the control
    for (id view in infoSegment.subviews) {
        [view removeFromSuperview];
    }

    // Append sorted and colored segments to the control
    for (id view in sortedViews) {
        [infoSegment addSubview:view];
    }

给单个片段着色的好方法,我一直在寻找类似的东西。 但现在我想知道这是否是一种“合法”的方式......

with:

[[infoSegment.subviews objectAtIndex:i] setTintColor:[UIColor colorWithRed:196.0/255.0 green:223.0/255.0 blue:155.0/255.0 alpha:1]];

看来您正在使用 UISegmentedControl 中单个元素的“私有”属性“tintColor”,而不是由苹果正式声明(它仅声明整个 UISegmentedControl 的属性“tintColor”,然后苹果使用它以两种不同的方式着色元素、选定的元素和其他元素)。

所以,你的方法确实可以工作,我正在考虑使用它......但苹果可能会拒绝你的应用程序,如果它真的被认为是私有设置方法...... 您曾经在 iStore 批准的应用程序中使用过它吗?

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

UISegmentedcontrol 外观导致问题 的相关文章

随机推荐

  • 数组作为函数的参数

    有一系列结构 static field fields xsize ysize 我想在功能上改变它 void MoveLeft pacman Pacman field fields int play 但是当我这样发送时 MoveLeft Pa
  • 无法在 matplotlib 中保存动画:Windows 权限被拒绝

    我已经尝试了一整天来解决这个问题 检查类似的线程 但没有成功 Stretch的无法使用ffmpeg保存matplotlib动画帮助解决了以前的错误 我的 ffmpeg 路径错误 但修复后我一直遇到访问被拒绝的情况 我的 ffmpeg 二进制
  • Spring MappingJacksonJsonView,如何告诉使用它而不是JSP视图?

    我正在尝试使用MappingJacksonJsonView使用Spring 3 0 没有成功 我不知道我做错了什么 我认为问题是我不知道如何告诉使用MappingJacksonJsonView提出请求 我尝试对视图名称和 bean 名称使用
  • 当我从 a-sky 标签内的另一台服务器加载图像时出现 CORS 错误

    我试图使用我自己托管的网络服务器中的纹理 但将其放入资产项目标签中时出现以下错误 gt Access to Image at http 192 168 137 1 3000 cat2 jpg from origin gt http loca
  • Azure功能不通知我的机器人(机器人框架)

    我正在使用 Azure 函数 计时器触发函数 该函数每 X 分钟执行一次 我使用 BotFramework 创建了一个机器人 并且希望每 x 分钟触发一个 azure 函数 当它被触发时 我的机器人必须得到通知 我有一个输出机器人框架 这是
  • 如何确定点是否在给定所有纬度/经度坐标的矩形内?

    如果给定矩形所有 4 个角的 x y 坐标 然后给出另一个 x y 坐标 如果左上角为 0 0 则很容易确定该点是否在矩形内 但是 如果坐标是纬度 经度 它们可能为负值 该怎么办 请参阅附件 有没有一个公式可以在这种情况下工作 从数学上讲
  • 在片段中实现 GridView 的问题

    我正在开发一个小型应用程序 其中包含 ActivityNavigationDrawer 我已经使用该活动放置了一个片段FragmentManager and FragmentTrancation 问题是 我有一个GridView在未出现的片
  • 合并多个音频缓冲区源

    关于html5 webaudio的问题 是否可以将多首歌曲合并在一起 我有不同的曲目 它们都使用 webaudio 同时播放 但我需要处理音频 因此我需要一个缓冲区内的所有音频 而不是每个曲目都有自己的缓冲区 我尝试通过添加通道数据来合并它
  • 连接目录中的所有文件

    如何加入一个目录中的所有文件 我可以通过显式命名下面的文件来一步完成此操作 有没有一种方法可以在不显式命名文件的情况下完成此操作 join lt join lt join lt join lt sort rpkmDir HS0477 chs
  • 如何使用带有参数列表的 django-filter 包?

    我想用以下方法过滤我的模型Django 过滤器 如果我按一个 id 进行过滤 效果很好 例如 http localhost 8000 accommodations accommodationType id 1 但我不知道如何通过多个 id
  • 在 WooCommerce 中选择变体销售价格后显示折扣百分比

    我下面的代码显示了用户选择变体后选择的变体价格 add filter woocommerce show variation price filter show variation price 10 3 function filter sho
  • 我收到此消息“错误:未找到 FFmpeg/avconv!”

    我正在尝试创建一个不和谐的机器人 但是每次我尝试运行 YouTube 链接时都会收到此错误 Error FFmpeg avconv not found at Function getInfo C Users discord bot node
  • PowerShell 如何获取函数或 cmdlet 的引用?

    我想获得对函数或 cmdlet 的引用 例如 我想引用 Get ChildItem cmdlet 我不想调用它 我想要对该函数的引用 然后我可以将其传递给另一个函数 有语法可以做到这一点吗 我知道我可以使用字符串 Get ChildItem
  • TableView 中的滚动委托

    我想制作一个像这样的链接的动画 这是我的简单截图 就我而言 我希望当我向上滑动时 蓝色标题视图将消失 导航栏将更改为蓝色 这是我的代码 import UIKit class ViewController UIViewController U
  • 读取/解析文本文件输入C++

    一点背景知识 我正在为一个学校项目开发一个滑块拼图 这是我们第一次使用 C 而不是 Java 这是我第一次必须实现从文件中读取数据的功能 我有一个关于从文本文件读取输入的简单问题 我了解如何逐行读取文件并将每一行保存在字符串中 我想知道在读
  • 为什么不能将供应商特定的伪元素/类组合到一个规则集中?

    在 CSS 中可以设置样式placeholder使用特定于供应商的伪类和伪元素的组合来输入输入中的文本 以获得最佳的跨浏览器覆盖率 这些都共享相同的基本属性 即 文本样式和颜色声明 然而 虽然我不可避免地想要应用相同的样式 而不管浏览器供应
  • Android 可绘制,背景和渐变位于左侧

    W 希望有一个drawable左边有背景和渐变 大约是10dp wide 我想要实现的目标的图片 左侧红色渐变 其余部分的背景 我怎样才能做到这一点 我试过了layer list有两种形状但没有运气 项目背景
  • Python:在随机段落中查找最长/最短的句子?

    我使用的是 Python 2 7 需要 2 个函数来查找最长和最短句子 按字数计算 随机段落 例如 如果我选择放入这一段 将您的海滨度假之旅与北加州詹纳葡萄酒之乡的红葡萄酒和白葡萄酒搭配起来 这座位于索诺玛县的沿海小城市坐落在俄罗斯河河口附
  • 使 chrome 中的复选框看起来像 IE 中的复选框

    IE 和 Chrome 中的复选框看起来不同 Chrome IE 从上面的图片中您可以看到差异 我希望 chrome 中的复选框看起来与 IE 中的一样 I tried webkit box shadow和其他类似的 css 属性 但没有运
  • UISegmentedcontrol 外观导致问题

    我需要有关 UISegment 外观的帮助 我在我的应用程序委托中设置了它 一切正常 直到我添加此代码来更改我选择的段颜色 它才引起问题 我在 viewDidLoad 时调用了 IBAction 它应该显示这个 但它显示了这一点 我知道是外