Персонализиран UIButton

Опитвам се да направя ново оформление за моите бутони.

Всъщност, когато настройвате Custom UIButton с изображение и заглавие, двата елемента са на една линия. Но според мен трябва да имам заглавието под изображението. Опитах се да го направя със свойството "Edge Inset" и то работи.

Има ли начин да го направите с подклас на UIButton? И как да го направим?

благодаря предварително!

Гуенин

редактиране:

Направих като Jano предложение в коментар

код за генериране на фоново изображение:

+(UIImage*)drawText:(NSString*)text inImage:(UIImage*)image {

UIFont *font = [UIFont boldSystemFontOfSize:16];
CGSize size = CGSizeMake(200, 200);
UIGraphicsBeginImageContext(size);
[image drawInRect:CGRectMake(100 - (image.size.width / 2), 0, image.size.width, image.size.height)];
CGRect rect = CGRectMake(100 - ([text length] * 8) / 2, image.size.height, 200, 200);
[[UIColor whiteColor] set];
[text drawInRect:CGRectIntegral(rect) withFont:font];
UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

return newImage;
}

Благодаря на всички!


person Gwennin    schedule 09.08.2011    source източник
comment
Създайте бутон със същото изображение, но с по-голямо пространство на рамката вертикално и след това нарисувайте текста, като използвате кода от този отговор: stackoverflow.com/questions/6992830/   -  person Jano    schedule 09.08.2011


Отговори (3)


Можете да подкласирате UIControl, за да направите персонализиран бутон.

person Mikhail Grebionkin    schedule 09.08.2011

Ще ви предложа тук, че няма нужда да подкласирате UIButton, можете да направите изображение, което има долната част прозрачна, в което можете да покажете заглавието на бутона и да зададете подравняване на заглавието на бутона надолу, така че да можете да покажете изображение със заглавие най-долу в UIButton .

можете да направите нещо подобно -

въведете описание на изображението тук

person saadnib    schedule 09.08.2011

Простото решение е да добавите изображение и етикет make label userinteractionenabled = NO, след това добавете бутон от персонализиран тип, добавете го както към изображението, така и към етикетите..в противен случай UIConrol ad michail каза..

person sairam    schedule 09.08.2011