如何扩大 MPVolumeView 路由按钮区域?

Posted

技术标签:

【中文标题】如何扩大 MPVolumeView 路由按钮区域?【英文标题】:How to expand the MPVolumeView route button area? 【发布时间】:2018-07-26 16:41:53 【问题描述】:

我目前正在使用 MPVolume 将音频从我的应用程序流式传输到 Apple TV。 MPVolume 有路由按钮,我想扩大它的触摸区域。

UIButton *button;
for (id object in self.volumeView.subviews) 
    if ([object isKindOfClass:[UIButton class]]) 
        button = object;
    

我使用上面的 sn-p 代码来捕捉这个按钮并为其设置新框架,但它不起作用。

【问题讨论】:

@AlanQuinn 我认为问题在于您更改框架的位置。更新新框架后,系统可以更新按钮的框架。您是否尝试观察按钮框架并在每次框架更改时更新它? 我试过了,还是不行 @AlanQuinn 覆盖 containerView 的touchesBegan:withEvent: 方法并在用户在可用范围内触摸时触发按钮的动作怎么样?您无需更改按钮框架。 【参考方案1】:

你可以继承 MPVolumeView,重写 layoutSubviews 方法,在这个方法上,找到 Button 并调整它的大小。

- (void)layoutSubviews 
    [super layoutSubviews];

    for (UIView *view in self.subviews) 
        if (view.class == NSClassFromString(@"MPButton"))
        //Do something here
        
    

【讨论】:

以上是关于如何扩大 MPVolumeView 路由按钮区域?的主要内容,如果未能解决你的问题,请参考以下文章

MPVolumeView 未在 iOS 11 上显示音频路由

音频路由按钮 - AirPlay

如何使用伪元素扩大按钮可点击区域

iOS点击事件穿透及扩大视图点击区域

博客美化08.添加"扩大/缩小浏览区域大小" 按钮

AirPlay 路由按钮可见但没有设备列表