iPhoneでこのタイプのレイアウトが必要です(UItableview、Uitableviewcell、Uilabel、およびUiimageviewを使用)。
(水色の点 == uiimageviewと仮定)
各 UItableviewcell には、1 つの UIimageview と 1 つの Uilabel があります。両方のコントロールの最初の降り口は同じ TOP LEFT です。私の uilabel のコンテンツは動的で、画像は 1 つの静的画像のみです。
画像は uilabel のコンテンツに比べて非常に小さいです。したがって、私の画像は垂直方向と水平方向の中央に配置されます。しかし、私はTOPの左隅だけが欲しいです。
編集:
私はすでにこれを行っていますUitableviewcell
ただし、Uilabel の行数が 2 以上の場合、imageview の位置が変更されます。縦にも横にも中央に入ります。しかし、uilabelの行数が1,2,3 .... nであるかどうかにかかわらず、左上の位置にのみimageviewが必要です
私のコードはここにあります:
In CommonCustomeCell.m
- (id)initWithFrame:(CGRect)frame reuseIdentifier:(NSString *)reuseIdentifier {
self = [super initWithFrame:frame reuseIdentifier:reuseIdentifier];
if (self) {
dotImage = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"dotPoint.png"]];
dotImage.opaque = YES;
[self.contentView addSubview:dotImage];
titleName3 = [[UILabel alloc] init];
titleName3.textAlignment = UITextAlignmentLeft;
titleName3.backgroundColor = [UIColor clearColor];
titleName3.adjustsFontSizeToFitWidth = FALSE;
titleName3.font = [UIFont systemFontOfSize:14];
titleName3.textColor = [UIColor colorWithRed:17.0/255.0 green:72.0/255.0 blue:147.0/255.0 alpha:1];
titleName3.lineBreakMode = NSLineBreakByWordWrapping;
[titleName3 sizeToFit];
[self.contentView addSubview:titleName3];
}
-(void)layoutSubviews
{
frame = CGRectMake(20,2,self.bounds.size.width - 45 , self.bounds.size.height);
[titleName3 setFrame:frame];
frame = CGRectMake(4,10,dotImage.frame.size.width,dotImage.frame.size.height);
self.dotImage.frame = frame;
}
}
RootViewController.m ファイル内
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
CommonCustomeCell *cell = (CommonCustomeCell *) [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[CommonCustomeCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
}
[cell.dotImage5 setImage:[UIImage imageNamed:@"myLogo.png"]];
cell.titleName3.text = [[myArr objectAtIndex:indexPath.row] objectForKey:@"title"];
}
}
助けてください、よろしくお願いします。