MPVolumeView改变Airplay图标的大小

时间:2011-02-08 01:10:59

标签: ios airplay mpvolumeview

我的一个视图上有一个MPVolumeView,当有其他输出源可用时会出现一个Airplay图标。这一切都很好,但是图标很小,无论我为MPVolumeView设置的框架有多大,它都不会变得更大。

任何人都知道如何增加airplay图标的大小?

3 个答案:

答案 0 :(得分:18)

我这样做是为了显示图标并增加其大小:

MPVolumeView *volumeView = [[[MPVolumeView alloc] initWithFrame:CGRectMake(255, 12, 30, 25)] autorelease];
volumeView.showsVolumeSlider = NO;
volumeView.showsRouteButton = YES;
volumeView.transform = CGAffineTransformMakeScale(1.5, 1.5); // increase size by 50%

答案 1 :(得分:0)

至少就目前而言,您所能做的就是抓取子视图并手动设置大小。这可能不是一个好主意,因为子视图层次结构可能会改变,即使你为图标设置了一个更大的框架,它也不会变大(或者如果contentMode设置为拉伸,你会得到一个模糊的图标)

您甚至可以手动提供的较大的图标替换为您的应用,但让我再说一遍,这不是一个好主意

答案 2 :(得分:0)

爬行子视图并使用约束,我设法复制了AVRoutePickerView的行为,该行为根据其包含的视图调整图标图像的大小。

尽管需要通过setRouteButtonImage(第二张图片)使用自定义图标。如果没有,它将使用2个不显示调整大小的离子的ImageView(第一个图像)。

代码和视图层次结构如下:

class UserParam {
    String fristName;
    String lastName;
}

class CountryParam {
    String name;
}

interface CRUD<T> {
    int create(T param);
}

class User implements CRUD<UserParam> {
    int create(UserParam param) {
        // do something based on received param of type UserParam
    }
}

class Country implements CRUD<CountryParam> {
    int create(CountryParam param) {
        // do something based on received param of type CountryParam
    }
}

Using system icon Using custom icon