我能够改变我的字体颜色,但我还需要更改字体大小,我该如何实现?这是我的颜色代码,
- (NSAttributedString *)pickerView:(UIPickerView *)pickerView attributedTitleForRow:(NSInteger)row forComponent:(NSInteger)component {
NSString *title = _currencyName[row];
NSAttributedString *attString = [[NSAttributedString alloc] initWithString:title attributes:@{NSForegroundColorAttributeName:[UIColor whiteColor]}];
return attString;
}
Run Code Online (Sandbox Code Playgroud)
更新:这不起作用:
NSAttributedString *attString = [[NSAttributedString alloc] initWithString:title attributes:@{NSForegroundColorAttributeName:[UIColor whiteColor], NSFontAttributeName: [UIFont fontWithName:@"HelveticaNeue-Light" size:40]}];
Run Code Online (Sandbox Code Playgroud)
mak*_*mak 75
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view
{
UILabel* tView = (UILabel*)view;
if (!tView)
{
tView = [[UILabel alloc] init];
[tView setFont:[UIFont fontWithName:@"Helvetica" size:14]];
//[tView setTextAlignment:UITextAlignmentLeft];
tView.numberOfLines=3;
}
// Fill the label text here
tView.text=[wishvalues objectAtIndex:row];
return tView;
}
Run Code Online (Sandbox Code Playgroud)
Ric*_*own 19
这是在iOS8上测试的Swift版本:
在Swift for iOS8中更新,您可以将其添加到您的委托:
func pickerView(pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusingView view: UIView!) -> UIView {
var pickerLabel = view as? UILabel;
if (pickerLabel == nil)
{
pickerLabel = UILabel()
pickerLabel?.font = UIFont(name: "Montserrat", size: 16)
pickerLabel?.textAlignment = NSTextAlignment.Center
}
pickerLabel?.text = fetchLabelForRowNumber(row)
return pickerLabel!;
}
Run Code Online (Sandbox Code Playgroud)
为Swift 4更新:
public func pickerView(_ pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusing view: UIView?) -> UIView {
let label = view as? UILabel ?? UILabel()
label.font = .systemFont(ofSize: 16)
label.textColor = .white
label.textAlignment = .center
label.text = text(for: row, for: component)
return label
}
Run Code Online (Sandbox Code Playgroud)
您需要pickerView:viewForRow:forComponent:reusingView:
在picker的委托中实现方法
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view{
UILabel* lbl = (UILabel*)view;
// Customise Font
if (lbl == nil) {
//label size
CGRect frame = CGRectMake(0.0, 0.0, 70, 30);
lbl = [[UILabel alloc] initWithFrame:frame];
[lbl setTextAlignment:UITextAlignmentLeft];
[lbl setBackgroundColor:[UIColor clearColor]];
//here you can play with fonts
[lbl setFont:[UIFont fontWithName:@"Times New Roman" size:14.0]];
}
//picker view array is the datasource
[lbl setText:[pickerViewArray objectAtIndex:row]];
return lbl;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
28038 次 |
最近记录: |