Help Center/ Meeting/ Client SDK Reference/ iOS SDK/ API Reference/ UI Customization/ Customizing the Menu That Appears in Response to Touches on the Title Bar of the Meeting Page
Updated on 2023-03-23 GMT+08:00

Customizing the Menu That Appears in Response to Touches on the Title Bar of the Meeting Page

buildTitleBarPopViewItems

API Description

This API is used to customize the menu that appears in response to touches on the title bar of the meeting page.

Figure 1 Customizing the menu that appears in response to touches on the title bar of the meeting page

Precautions

  1. The host password is visible only to the host. Other customized menus are displayed in the same way for all participants.
  2. Customized cells need to comply with HWMInMeetingCellDelegate. If you only change the default sequence, you do not need to follow the proxy.

Method Definition

1
2
3
4
5
6
7
8
9
- (NSArray <HWMInMeetingCellModel *> *)buildTitleBarPopViewItems;

//Customize a cell as follows based on HWMInMeetingCellDelegate.
/// Cell object proxy
/// @param cellType cellType
- (UITableViewCell *)cellForRowWithCellType:(HWMConfInfoCellType)cellType inTableView:(UITableView *)tableView indexPath:(NSIndexPath *)indexPath;
/// Cell tapping event proxy
/// @param cellType cellType
- (void)cellSelectedWithCellType:(HWMConfInfoCellType)cellType;

Parameter Description

None

Return Values

None

Sample Code

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
/// Customize the menu that appears in response to touches on the title bar of the meeting page.
- (NSArray <HWMInMeetingCellModel *> *)buildTitleBarPopViewItems{
    HWMInMeetingCellModel *subjectCell = [HWMInMeetingCellModel defaultSubjectCell];
    HWMInMeetingCellModel *encryptCell = [HWMInMeetingCellModel defaultEncryptedCell];
    HWMInMeetingCellModel *confIdCell = [HWMInMeetingCellModel defaultConfIdCell];
    HWMInMeetingCellModel *generalPasswordCell = [HWMInMeetingCellModel defaultGeneralPasswordCell];
    HWMInMeetingCellModel *hostPasswordCell = [HWMInMeetingCellModel defaultHostPasswordCell];
    HWMInMeetingCellModel *lockCell = [HWMInMeetingCellModel defaultConfLockCell];
    HWMInMeetingCellModel *qosCell = [HWMInMeetingCellModel defaultQosCell];
 
    return @[subjectCell,encryptCell, confIdCell, generalPasswordCell, hostPasswordCell, lockCell, qosCell];
}
/// The cell object proxy is highly adaptive. The cell display can be customized as required. The following code is for reference only.
/// @param cellType cellType
- (UITableViewCell *)cellForRowWithCellType:(HWMConfInfoCellType)cellType inTableView:(nonnull UITableView *)tableView indexPath:(nonnull NSIndexPath *)indexPath{
    NSString *reuseIdentifier = [NSString stringWithFormat:@"CustomCell_%ld", cellType];
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:reuseIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:reuseIdentifier];
    }
    cell.contentView.backgroundColor = [UIColor clearColor];
    cell.backgroundColor = [UIColor clearColor];
    cell.selectionStyle = UITableViewCellSelectionStyleNone;
    
    UIImageView * safeImg = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"custom_conf_setting"]];
    [cell.contentView addSubview:safeImg];
    
    UILabel * safeLabel = [[UILabel alloc] init];
    safeLabel.font = [UIFont systemFontOfSize:14];
    safeLabel.textColor = [UIColor whiteColor];
    safeLabel.text = reuseIdentifier;
    [cell.contentView addSubview:safeLabel];
    [safeImg mas_makeConstraints:^(MASConstraintMaker *make) {
        make.left.mas_equalTo(16);
        make.size.mas_equalTo(CGSizeMake(16, 16));
        make.centerY.mas_equalTo(safeLabel);
    }];
    
    [safeLabel mas_makeConstraints:^(MASConstraintMaker *make) {
        make.left.mas_equalTo(safeImg.mas_right).offset(10);
        make.top.mas_equalTo(10);
        make.height.mas_equalTo(34);
        make.bottom.mas_equalTo(-10);
    }]; 
    return cell;
}
 
/// Cell tapping event proxy
/// @param cellType cellType
- (void)cellSelectedWithCellType:(HWMConfInfoCellType)cellType{
    [UIUtil showMessage:[NSString stringWithFormat:@"Menu %lu tapped.", (unsigned long)cellType]];
}