我在 UITableViewCell 上放了几个图标。图标的数量可以从 1 到 6 不等。图标不应具有固定的 X 位置,而应根据单元格空间动态放置。因此,如果有 3 个图标,它们应该看起来以单元格为中心。此外,图标间距也应该有所不同。例如,当它是 6 个图标时,它们之间的边距都会减少,当有 3 个时,边距会更多,X 位置也是如此。
请建议一些快速计算此帧的方法。我在 iOS 6 和 iOS 7 上运行该应用程序。
这是我迄今为止尝试过的,但这似乎不适用于图标计数变化。另外,在这之间的空间不是动态的。
int maxIconTypes = 6;
CGFloat innerPadding = ([self isIOS7]) ? 15.0f : 9.0f;
CGRect adjustedBoundsIOS6 = [self bounds];
CGFloat adjustedWidth = ([self isIOS7]) ? self.bounds.size.width : adjustedBoundsIOS6.size.width;
CGFloat xOrigin = innerPadding;
CGFloat iconViewSize = 25.0f;
CGFloat ySpacer = (self.bounds.size.height - iconSize) / 2;
CGFloat xSpacer = ((adjustedWidth - (innerPadding * 2)) - (maxRequestTypes * iconViewSize)) / (maxIconTypes - 1);
for (NSString *icon in iconList) {
UIImageView *anIconView = [[UIImageView alloc] initWithImage:[UIImage icon]];
if (anIconView.image) {
anIconView.frame = CGRectMake(xOrigin + originPadding, ySpacer, anIconView.image.size.width, anIconView.image.size.height);
[self.contentView addSubview:anIconView];
xOrigin += anIconView.frame.size.width + xSpacer;
}
}
Best Answer-推荐答案 strong>
无论你有多少项目,如果你想在开始和结束处等间距一半间距,空格的数量是相同的:
half width full width half
half width full width full width 一半
因此,您只需要知道可用的全宽和项目的组合宽度。一个简单的乘法(以获得项目的组合宽度)和减法(从可用的全宽度)为您提供“间隔”的剩余宽度。除以项目数得到xSpacer ,设置初始xOrigin 为xSpacer * 0.5
关于ios - UITableViewCell 中图像的动态帧计算,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/21491863/
|